【问题标题】:Jenkins cannot connect to EC2 using private key, but I can connect using PuttyJenkins 无法使用私钥连接到 EC2,但我可以使用 Putty 连接
【发布时间】:2022-01-04 22:20:48
【问题描述】:

我最近继承了一个在 AWS EC2 服务器上运行的 Jenkins 实例。它有多个管道连接到成功运行的不同 EC2 服务器。我在向新的 EC2 Web 服务器添加新节点时遇到问题。

我在新的 Web 服务器上有一个名为 jenkins 的帐户。我生成了密钥,将 ssh-rsa 密钥添加到 ~/.ssh/authorized_keys,并验证我能够通过 Putty 与 jenkins 用户连接。

在 Jenkins 中,在 Dashboard > Credentials > System > Global Credentials 下,我创建了新的凭据,如下所示:

  1. 用户名:jenkins
  2. 私钥 -> 直接输入密钥:粘贴在以“BEGIN RSA PRIVATE KEY”开头的密钥中:

最后,我使用这些凭据创建了一个新节点,通过 SSH 连接并使用“已知主机文件验证策略”。

很遗憾,我在尝试启动代理时遇到以下错误:

[01/04/22 22:16:43] [SSH] 警告:当前没有条目存在于 此主机的已知主机文件。在此之前连接将被拒绝 新主机及其关联的密钥被添加到已知主机文件中。钥匙 交换未完成,连接已关闭。

我确认我在节点中配置了正确的主机名。 我不知道我在这里缺少什么,特别是因为我可以通过 Putty 连接。

建议?

【问题讨论】:

    标签: jenkins amazon-ec2 ssh ssh-keys


    【解决方案1】:

    您是否已将新节点添加到 Controller 节点上的已知主机文件中? 我假设 Putty 是您的本地机器而不是控制器?

    有关详细信息,请参阅此支持文章 https://support.cloudbees.com/hc/en-us/articles/115000073552-Host-Key-Verification-for-SSH-Agents#knowhostsfileverificationstrategy

    【讨论】:

    • 成功了,谢谢!
    【解决方案2】:

    听起来您的系统不允许将主机密钥自动添加到known_hosts 文件中。您可以在您的用户、系统或可能在 Jenkins 下运行的任何用户、SSH 配置文件中检查 UpdateHostKeys 标志。你可以阅读更多关于我正在谈论的特定标志here

    如果您需要手动添加该主机密钥,here's 写了一篇关于如何操作的文章。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-28
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      • 2013-07-15
      相关资源
      最近更新 更多