GCPにSSHでログインできないときの原因と解決方法

Google Compute EngineへのSSH接続は、

ドキュメントにもありますが、
https://cloud.google.com/compute/docs/instances/connecting-to-instance?hl=ja

SSH認証鍵ペアの生成をして、

Google Cloud Platformコンソール の以下メニューにて

[Compute Engine] – [メタデータ] – [SSH認証鍵]に公開鍵を貼り付けるといういたってシンプルなものです。

なので、通常は問題なくSSHログインできます。

ただ たまに以下のエラーが出て、

No supported authentication methods available

SSHログインできず 困ることがあります。
SSH認証鍵の設定は間違っていないのにおかしいなというときは、
ユーザー/.ssh/authorized_keys のファイルが存在するかを確認してみましょう。

例えばapacheユーザーで

といった変更をしました。

ただ変更する前に
GCP管理コンソールで[メタデータ]を登録したせいで /home/apache/.ssh/authorized_keys が生成されておらず、ドツボにはまったことがあります。操作の順番を間違えたパターンです。

この時は rebootをしたら、
.ssh/authorized_keys のファイルが無事自動生成されて、ログインできました。

また

bad ownership or modes for directory /home/apache

というエラーの場合は、
/home/apacheのパーミションが777の可能性があります。
700,711,755のいずれかにしましょう。

とりあえず、SSHログインできないときは、

以下のようにGoogle Cloud Platform上のコンソールから SSH(ブラウザウィンドウで開く)接続をして、

less /var/log/secure でエラーをチェックすると解決方法がみえてきます。

もし同じような事象の方がいましたら、お試しください。


この記事をシェア