0

背景:我正在尝试编写一个使用 capistrano 部署 rails 应用程序的 jenkins 作业。作为其中的一部分,我需要将已复制的 ssh 密钥添加到该环境中 jenkins 用户的 .ssh 文件夹中。我已在该文件夹中正确设置了 id_rsa 和 id_rsa.pub 的所有者、组和权限。

我收到错误Net::SSH::AuthenticationFailed: Authentication failed for user deploy@[server]。经调查,当我以 jenkins 用户身份运行以下命令时,会发生以下情况:

ssh-add ~/.ssh/id_rsa

到目前为止,一切都很好。

但是 ~/.ssh/id_rsa.pub 的公钥不是由ssh-add -L

如果我在本地机器上执行相同的步骤,则会添加正确的密钥,并且我可以 ssh 进入环境。

为什么 ssh-add 似乎添加了错误的密钥(我似乎在系统的其他任何地方都找不到)?

4

1 回答 1

0

当您ssh-add -L在 jenkins 服务器上运行时,您可能会看到通过“ssh 代理转发”机制从您自己的机器转发的公钥。

尝试使用标志禁用 ssh 代理转发ssh到您的詹金斯服务器:-a

ssh -a <jenkins_server>
于 2014-08-30T17:45:42.697 回答