这个问题之前有答案,但那是针对 windows 的。但现在我在 linux 中。
我搞砸了很多。请帮我解决这个问题。
我使用 ssh-keygen
命令创建了 ssh 对,然后我将 id_rsa.pub
复制并粘贴到 vminstace
SSH Keys
然后保存。我发出了以下命令,但那是行不通的
gcloud compute --project "project001" ssh --zone "europe-west1-b" "instance-3"
上面的命令创建了两个文件 google_compute_engine
和 google_compute_engine.pub
然后错误是:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
最佳答案
您已将 SSH 公钥 (id_rsa.pub) 添加到实例元数据,gcloud 命令已将另一个公钥 (google_compute_engine.pub) 添加到项目元数据。
但是,实例元数据会覆盖项目元数据,因此您尝试使用未经授权的 key 进行 SSH。
因此,我针对您的情况提出了四种不同的解决方案:
1- 使用标准 SSH 客户端:
ssh -i $HOME/.ssh/id_rsa -o UserKnownHostsFile=/dev/null -o CheckHostIP=no -o StrictHostKeyChecking=no EXTERNAL_IP_ADDRESS
2- 使用 gcloud 命令将 google_compute_engine.pub key 添加到实例元数据并通过 SSH 连接到实例。
3- 从实例元数据中删除 SSH key 并通过 SSH 连接到运行 gcloud 命令的实例。
4- SSH from the browser .
希望对您有所帮助。
关于linux - 无法在 Linux 中通过 SSH 连接到 Compute Engine 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27165018/