背景:我正在尝试编写一个使用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-add似乎添加了错误的密钥(我似乎无法在系统的任何其他位置找到它)?
答案 0 :(得分:0)
当您在jenkins服务器上运行ssh-add -L
时,您可能会看到通过“ssh代理转发”机制从您自己的计算机转发的公钥。
尝试ssh
使用-a
标记的jenkins服务器禁用ssh代理转发:
ssh -a <jenkins_server>