linux - 无法在 Linux 中通过 SSH 连接到 Compute Engine 实例

标签 linux ssh google-compute-engine gcloud

这个问题之前有答案,但那是针对 windows 的。但现在我在 linux 中。

我搞砸了很多。请帮我解决这个问题。

我使用 ssh-keygen 命令创建了 ssh 对,然后我将 id_rsa.pub 复制并粘贴到 vminstace SSH Keys 然后保存。我发出了以下命令,但那是行不通的

gcloud compute --project "project001" ssh --zone "europe-west1-b" "instance-3"

上面的命令创建了两个文件 google_compute_enginegoogle_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/

相关文章:

c - 我更改fs/myext2/file.c读写操作后,我的 'cat'、 'cp'、 'echo'都被kill掉了

linux - 维护子 shell 输出中的换行符

linux - rsync - 将文件复制到另一台服务器

google-cloud-platform - 为 Compute Engine 虚拟机设置环境变量

postfix-mta - Compute Engine 上的 Sendgrid 无法正常工作

google-cloud-platform - Google Cloud VM 实例卡在控制台建议的调整大小上

linux - 从 PCAP 中提取信息

linux - 优化嵌入式Linux系统的根文件系统大小

java - 通过 Java 启动远程 Linux 机器上的进程(脚本/可执行文件)

ssh - 获取IP地址时出错:运行SSH命令出错了!命令