いろんなサーバーをGCPに移行していっているんですが、突然ブラウザ上のSSHコンソールが接続できなくなったので対処法を書こうと思います。
環境
原因不明
文字通り突然接続できなくなりました。
他プロジェクトのVMインスタンスでは接続できるのにどうしてこんなことが起こったのか謎。
ちなみにSSHはカスタムポートで動くように設定してます。
ファイアーウォールルールも設定済みで、sshd_configにも記述済みの状態です。
マジ謎。
エラーメッセージ
プロジェクト メタデータへの鍵転送に異常に長い時間がかかっています。インスタンス メタデータに転送する方が所要時間は短くなる可能性がありますが、鍵が転送されるのはこの VM のみになります。この仮想マシンから他の仮想マシンに SSH 接続する場合は、鍵を適切に転送する必要があります。 鍵をインスタンス メタデータに転送する場合は、こちらをクリックしてください。この設定は後で変更できず、有効にした後に、[インスタンスの詳細] ページで無効にする必要があります。
その後に一瞬ですがシリアルコンソール
云々という文言が出てきたので、とりあえずVMインスタンスからシリアルコンソールを開きました。
開けない(disabledになっている)方はインスタンスの編集からシリアルポート接続を許可
にチェックを入れてください。
やったこと
VMインスタンスから該当のインスタンス名をクリック、その後「シリアルコンソールに接続」で接続できます。
接続するとえげつない量のエラーが。。。
vm google-accounts: ERROR Exception calling the response handler. [Errno 28] No space left on device.#012Traceback (most recent call last):#012 File "/usr/lib/python2.7/site-packages/google_compute_engine/metadata_watcher.py", line 196, in WatchMetadata#012 handler(response)#012 File "/usr/lib/python2.7/site-packages/google_compute_engine/accounts/accounts_daemon.py", line 263, in HandleAccounts#012 self.utils.SetConfiguredUsers(desired_users.keys())#012 File "/usr/lib/python2.7/site-packages/google_compute_engine/accounts/accounts_utils.py", line 288, in SetConfiguredUsers#012 updated_users.flush()#012IOError: [Errno 28] No space left on device
なんか容量っぽい・・・。
# df ファイルシス 1K-ブロック 使用 使用可 使用% マウント位置 /dev/sda1 15716368 15716348 20 100% / devtmpfs 3481172 0 3481172 0% /dev tmpfs 3488804 0 3488804 0% /dev/shm tmpfs 3488804 17828 3470976 1% /run tmpfs 3488804 0 3488804 0% /sys/fs/cgroup tmpfs 697764 0 697764 0% /run/user/1000 tmpfs 697764 0 697764 0% /run/user/0
100%
ということで少しファイル数を減らして、容量をあけることにします。
シリアルコンソール接続中も継続的にエラーが出てきてたのですが、容量を開けたら出なくなりました。
SSHコンソールに接続
だめですねぇ :)
もう一回シリアルコンソールに接続して、firewallとselinuxがdisableになっているか確認します。
$ sudo systemctl is-enabled firewalld disabled $ getenforce disabled
どっちもdisabledになってるね。
とりあえずよくわからんからsudo yum update
すると、固まりました\(^o^)/。
ctrl + c
してもダメ、ウィンドウ閉じて開き直してもダメ。
いまのところ打つ手なし。
諦めてローカルからSSH
正直ブラウザのコンソールだと感度悪いし、起動速度もそんなに速くないです。
これを機に大人しくローカルから接続する方法に切り替えました。
$ cd ~/.ssh & ssh-keygen -t rsa -b 4096 -C "rdwbocungelt5@gmail.com" #=> あとは順をおって作成するだけ。
出来上がったrsa.pub
をコピーして、GCEのメタデータに貼っつけます。
Compute Engine -> メタデータ -> SSH認証鍵 -> 編集
で鍵を貼り付けるだけです。
おわりに
ブラウザからSSHコンソールに接続する方法は解決できませんでしたが、暫定的にローカルからSSHすることで解決させました。
解決策が見つかれば後日追記等したいと思います。
後日追記(7 / 31)
久しぶりにブラウザからSSHコンソール開いてみたら何の問題もなく開きました。
時間が解決してくれるってことですかね。
失恋じゃねえんだから。