web-dev-qa-db-ja.com

SSH経由でGoogleComputeEngineに接続できません

新しいプロジェクトでGoogleComputeEngineの新しいインスタンスを設定しました。インスタンスを起動し、コマンドgcloud initを使用してプロジェクトに接続します。次に、コマンドSudo gcloud compute ssh instance-1を使用します。 SSHキーペアの生成が必要です。

WARNING: The private SSH key file for Google Compute Engine does not exist.
WARNING: You do not have an SSH key for Google Compute Engine.
WARNING: [/usr/bin/ssh-keygen] will be executed to generate a key.
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /Users/username/.ssh/google_compute_engine.
Your public key has been saved in /Users/username/.ssh/google_compute_engine.pub.
The key fingerprint is:
SHA256:there_is_a_key_here_but_probably_should_not_show_it [email protected]
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|                 |
|                 |
|                 |
|                 |
|                 |
|                 |
|There is an image|
|here             |
+----[SHA256]-----+
Updating project ssh metadata...\Updated [link to the project].
Updating project ssh metadata...done.                                                         
Warning: Permanently added 'compute.1788786712041991164' (ECDSA) to the list of known hosts.
Permission denied (publickey).
Permission denied (publickey).
Permission denied (publickey).
Permission denied (publickey).
Permission denied (publickey).
Permission denied (publickey).
Permission denied (publickey).
Permission denied (publickey).
Permission denied (publickey).
Permission denied (publickey).
Permission denied (publickey).
Permission denied (publickey).
Permission denied (publickey).
ERROR: (gcloud.compute.ssh) Could not SSH to the instance.  It is possible that your SSH key has not propagated to the instance yet. Try running this command again.  If you still cannot connect, verify that the firewall and instance are set to accept ssh traffic.

奇妙な。 Google Cloud Consoleでメタデータを確認しました。このコマンドを実行すると、そこにキーが表示されました。そのため、正常に生成され、メタデータが更新されました。少し待ってから、同じコマンドを再試行します。

My-MacBook-Air-4:~ myname$ Sudo gcloud compute ssh instance-1
Permission denied (publickey).
ERROR: (gcloud.compute.ssh) [/usr/bin/ssh] exited with return code [255]. See https://cloud.google.com/compute/docs/troubleshooting#ssherrors for troubleshooting hints.

だから私はトラブルシューティングのヒントのいくつかを試してみます:

gcloud compute firewall-rules list

NAME                    NETWORK  SRC_RANGES    RULES                         SRC_TAGS  TARGET_TAGS
default-allow-http      default  0.0.0.0/0     tcp:80                                  http-server
default-allow-https     default  0.0.0.0/0     tcp:443                                 https-server
default-allow-icmp      default  0.0.0.0/0     icmp
default-allow-internal  default  10.128.0.0/9  tcp:0-65535,udp:0-65535,icmp
default-allow-rdp       default  0.0.0.0/0     tcp:3389
default-allow-ssh       default  0.0.0.0/0     tcp:22

ファイアウォールは問題ないようです。そして、それは私があらゆるプロジェクトで作成するすべてのGoogle ComputeEngineインスタンスに起こります。何が起こっているのかわかりません。キーペアが作成されました。いくつかの異なるプロジェクトですべての手順を数回試しましたが、エラーが解決しません。

編集:キーはプロジェクトのSSHタブに表示されましたが、メタデータタブはまだ空です。

7
Ilya Lapan

次に、コマンドSudo gcloud compute ssh instance-1を使用します

ここでSudoを使用するのは間違っています。 /Users/username/.ssh/google_compute_engineでキーを作成したようですが、コメント[email protected]があるため、所有権が間違っている(つまり、rootが所有している)可能性があります。

これは次の方法で修正できる可能性があります。

 Sudo chown $USER:$GROUPS ~/.ssh/google_compute_engine{,.pub}

そして接続なしSudo

 gcloud compute ssh instance-1

または、それが失敗した場合は、最初からやり直しますが、Sudoは何にも使用しないでください。

5
Grisha Levit