gcloud ssh -- 没有可用的受支持的身份验证方法(服务器发送:publickey)

gcloud ssh -- No supported authentication methods available (server sent: publickey)

我正在尝试按照一个简单的 ssh 过程连接到所描述的实例 here。 不幸的是,我不断收到此错误:

 Server refused our key FATAL
ERROR: Disconnected: No supported authentication methods available
(server sent: publickey)

看起来我做的一切都正确。

  1. 我创建了一个新的 ubuntu 实例
  2. 尝试使用$ gcloud compute username@ssh example-instance --zone us-central1-a
  3. 登录
  4. 收到即将生成 ssh 密钥的警告

    WARNING: You do not have an SSH key for Google Compute Engine.
    WARNING: [C:\Program Files (x86)\Google\Cloud SDK\google-cloud-sdk\bin\sdk\winkeygen.exe] will be executed to generate a key.
    Updated [https://www.googleapis.com/compute/v1/projects/sharp-kayak-120708].
    
  5. 我收到上面提到的错误

    Server refused our key
    FATAL ERROR: Disconnected: No supported authentication methods available (server sent: publickey)
    

我看到在本地计算机和实例上创建的密钥(gcloud 将它们添加到元数据 -> SSH 密钥)。网络设置中允许 SSH。

我已经尝试过 here:

中描述的替代路线
  1. 使用 gcloud 生成 ssh
  2. 将其添加到选美比赛中
  3. 使用 PuTTY 的 SSH
  4. 同样的错误:

    No supported authentication methods available
        (server sent: publickey)
    

非常感谢您的想法。

感谢 George 的帮助解决https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!topic/gce-discussion/uAPNpkBJXi4

此处为分步指南:

  1. 下载 PuTTY 和 PuTTYgen。
  2. 使用 PuTTYgen 生成密钥。将评论框中的文本替换为您的 windows 用户名。将 window 中的代码复制并粘贴到项目和实例的 SSH 密钥中(转到实例,编辑,向下滚动到 SSH 密钥列表并单击 "add")(不确定是否两者都是必需的).不要使用密码短语。
  3. 另存为私钥文件。为方便起见,将其保存在您的 C:\Users\.ssh 文件夹中。 PuTTY 需要这种格式的密钥才能工作。
  4. 打开 PuTTY。将密钥添加到会话中:Connection>SSH>Auth>Browse..指向您刚刚在.ssh中生成的新生成的密钥文件。
  5. 设置会话。输入 IP 地址。此时值得保存 - 它会记住 IP 和密钥。
  6. 打开...
  7. 登录为:...输入您的 Windows 用户名,该用户名是您在密钥生成中作为评论添加的。

我现在起床 运行!期待让“google 计算 ssh 命令工作的修复!错误报告:https://code.google.com/p/google-cloud-sdk/issues/detail?id=546

感谢您的报告。

此问题已在 Cloud SDK 版本 98.0.0 中修复。它包括识别损坏的 Windows 密钥文件并即时重新生成它们的补救措施。

问题出在 google-cloud-sdk\bin\sdk\winkeygen.exe 中。它在生成的 .ppk.pub 文件中破坏了 public 密钥模数表示。然后 ssh 服务器将模数解释为带符号的 bignum 并退出。