1
1

More than 3 years have passed since last update.

「gcloud compute ssh」コマンドでGCPのCompute Engineへの接続に苦戦した話

Posted at

こんにちは、けいすけです。

今回はgcloudコマンドでCompute Engineにssh接続する際、めちゃめちゃ苦労したよ。という話です。
結論はしょうもないですが、もし同じ失敗をしている人がいたら参考にしていただけると幸いです。

gcloudコマンドでのssh接続について

ドキュメントを参考にコマンドを実行すれば、普通は簡単に接続できると思います。
しかし私はめちゃめちゃ苦労してしまうのでした。。
ドキュメント通り、以下のコマンドを実行します。

プロジェクト名:tutorial-20210727
地域:us-central1-a
インスタンス名:instance-1
としています。

$ gcloud compute ssh --project=tutorial-20210727 --zone=us-central1-a instance-1
Enter passphrase for key '/Users/adachikeisuke/.ssh/google_compute_engine': 
adachikeisuke@34.72.137.84: Permission denied (publickey).
ERROR: (gcloud.compute.ssh) [/usr/bin/ssh] exited with return code [255].

しかし、passphraseというものの入力を求められ、何も入力せずにエンターを押すとそのままエラーとなってしまいます。
passphraseを求められるなんて、ドキュメントにはどこにも書いていません。

なぜssh接続が失敗するのか

これは一体どういう状況なのかを説明します。
実は以前GCEのインスタンスにssh接続を試みた際、passphraseを自分で登録していたようなのです。
私はそのことを全く覚えていませんでした。
自分のパソコン(mac)の~/.ssh配下にgoogle_compute_enginegoogle_compute_engine.pubが存在している方はまさにこのパターンだと思います。
google_compute_engineは秘密鍵でgoogle_compute_engine.pubは公開鍵です。
gcloudコマンドで接続すると、秘密鍵と公開鍵を自動で作成してくれ(この際にpassphraseの設定が行われます。)、この鍵を使用して接続を行ってくれます。
ですので、gcloudコマンドを使用すれば接続の際に鍵の存在を意識しなくても良いのです。

解決方法

原因がわかってしまえば簡単に解決できます。
まずは~/.ssh配下のgoogle_compute_enginegoogle_compute_engine.pubを削除してください。
そして、再びインスタンスにssh接続しに行きます。

$ gcloud compute ssh --project=tutorial-20210727 --zone=us-central1-a instance-1
WARNING: The private SSH key file for gcloud does not exist.
WARNING: The public SSH key file for gcloud does not exist.
WARNING: You do not have an SSH key for gcloud.
WARNING: SSH keygen will be executed to generate a key.
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): 

すると以前とは異なる表示が出ます。
ここで何か文字列を入力するとそれがpassphraseとして登録されます。
何も入力しなければpassphraseなしでインスタンスに接続します。
~/.ssh配下を見に行くとgoogle_compute_enginegoogle_compute_engine.pubが作成されていると思います。

以上です。
最後まで読んでいただきありがとうございます。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1