这个问题以前有过答案,但这是针对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).
发布于 2014-12-19 23:45:26
您已经将您的SSH公钥(id_rsa.pub)添加到了实例元数据,并且gcloud命令已经将另一个公钥(google_compute_engine.pub)添加到了项目元数据中。
但是,实例元数据覆盖了项目元数据,因此您尝试使用非授权密钥进行SSH。
因此,我针对您的情况提出了四种不同的解决方案:
1-使用标准SSH客户端:
ssh -i $HOME/.ssh/id_rsa -o UserKnownHostsFile=/dev/null -o CheckHostIP=no -o StrictHostKeyChecking=no EXTERNAL_IP_ADDRESS
2-使用gcloud命令将SSH密钥添加到实例元数据中,并将google_compute_engine.pub添加到实例中。
3-从实例元数据中删除SSH密钥,并通过SSH进入运行gcloud命令的实例。
我希望这能帮到你。
发布于 2014-12-03 23:27:16
从网络登录到SSH终端,编辑sshd_config使密码验证为yes保存文件并重新启动SSH,然后使用任何SSH客户端从您的pc登录...
发布于 2014-12-03 00:33:25
一点背景知识: Google Compute Engine在每个项目的元数据中维护了一个公钥列表。您可以通过转到https://console.developers.google.com并导航到
Compute > Compute Engine > Metadata > SSH KEYS.
此外,GCE会尝试确保您的每个VM在其~/.ssh/authorized文件中显示这些密钥。
当你调用gcloud ssh
而密钥对google_compute_engine,google_compute_engine.pub不存在时,gcloud会尝试创建并注册一个新的密钥。
在手动编辑authorized_keys文件时,此过程似乎失去了同步。
要返回已知良好的状态,请转到https://console.developers.google.com,导航到
Compute > Compute Engine > VM instances
然后单击实例旁边的Connect列下的SSH。这将作为浏览器插件启动SSH,并产生重新同步authorized_keys文件的副作用。之后,您应该能够像往常一样使用gcloud compute ssh
ssh到您的实例中。
顺便说一句,在GCE中使用其他ssh密钥是可以的,但是您应该通过向项目元数据添加密钥并让GCE为您处理传播来做到这一点。
https://stackoverflow.com/questions/27165018
复制相似问题