【问题标题】:gcloud ssh -- No supported authentication methods available (server sent: publickey)gcloud ssh -- 没有可用的受支持的身份验证方法(服务器发送:publickey)
【发布时间】:2016-05-26 23:51:18
【问题描述】:

我正在尝试遵循一个简单的 ssh'ing 过程来描述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. 收到将要生成 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].
    
  4. 我收到上面提到的错误

    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)
    

非常感谢您的想法。

【问题讨论】:

  • 你能把gcloud info的输出贴出来吗?您也可以尝试使用带有--dry-run 标志的ssh 命令并发布输出吗?
  • @Valentin herelink 是 gcloud info 的输出,这里是 --dry-run 输出 C:\Program Files (x86)\Google\Cloud SDK>gcloud compute ssh --dry-run temp-machine C:\Program Files (x86)\Google\Cloud SDK\google-cloud-sdk\bin\sdk\putty.exe -i C:\Users\victo\.ssh\google_compute_engine.ppk victo@104.197.216.86 如果我在实例上执行 whoami,我会得到不同的登录名。 gcloud 使用的登录名来自 Windows 机器。虽然让我吃惊的是手动添加密钥也无济于事
  • @Valentin 看起来这个问题是特定于平台的——我刚刚在 Mac 机器上重复了所有步骤,并且能够毫无问题地通过 ssh 进入实例。
  • 您是否尝试通过 SSH 连接到 Windows 虚拟机? Windows 没有 SSH。 gcloud compute ssh 仅适用于 Linux 虚拟机。

标签: ssh google-cloud-platform gcloud


【解决方案1】:

感谢您的报告。

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

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

【讨论】:

    【解决方案2】:

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

    这里的分步指南:

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

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

    【讨论】:

    • 我尝试了这个解决方案,但仍然面临同样的问题。有什么想法吗?
    猜你喜欢
    • 2018-04-02
    • 2023-03-26
    • 1970-01-01
    • 2020-09-23
    • 1970-01-01
    • 2018-05-21
    • 2018-08-17
    • 2019-12-05
    • 2011-03-26
    相关资源
    最近更新 更多