我想知道您是否遇到过此错误以及可能的解决方法。我花了很多时间来修复此问题,但似乎没有效果。
权限被拒绝(publickey、gssapi-keyex、gssapi-with-mic)。错误:(gcloud.compute.ssh)[/usr/bin/ssh] 退出,返回代码为 [255]。
答案1
我猜你正在使用 SSH 命令或某些第三方工具进入你的Google compute
实例。它只接受基于 SSH 密钥的登录。你必须通过SSH console
从Google Compute
控制台网站打开的手动添加这些密钥。
答案2
您可以使用以下指南连接到 Linux 实例。不同的选项如下(详情见链接):
- 使用 Compute Engine 工具进行连接
- 使用第三方工具连接
- 连接到没有外部 IP 地址的实例
最后一个非常重要的问题,也是导致错误的可能原因是设置防火墙规则,向其添加标签,然后将该标签添加到您的实例:
...
笔记:您的 Google Cloud Platform VPC 网络必须具有一条或多条允许在端口 22 上进行 SSH 连接的防火墙规则。防火墙规则必须允许您要从中连接的 IP 范围或特定 IP 地址进行 SSH 连接。
...
看本文档关于防火墙规则,在本代码实验室的第 8 步中,您将了解如何启用规则。如果您的目标协议和端口将会是tcp:22
而不会tcp:80
。
在设置规则之前,如果我尝试使用此命令进行连接:
perezprado@trainingperezprado:~$ gcloud compute ssh perezdesktop
我收到相同的错误信息:
ssh: connect to host 00.111.222.333 port 22: Connection timed out
ERROR: (gcloud.compute.ssh) [/usr/bin/ssh] exited with return code [255].
另一方面,这个错误:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic)
有答案这里。 显然:
.....您项目中的其他人为 sshKeys 设置了每个实例的元数据(它将覆盖项目范围的元数据)....
详情请参阅链接。
答案3
我在项目级别添加 ssh-keys 时遇到了同样的问题(控制台:Compute Engine -> 元数据 -> SSH 密钥)。我在 os-login 级别添加 ssh-keys 后问题得到解决:
gcloud compute os-login ssh-keys add \
--key-file [KEY_FILE_PATH] \
--ttl [EXPIRE_TIME]
参考:https://cloud.google.com/compute/docs/instances/managing-instance-access#enable_oslogin