詹金斯不会使用 SSH 密钥

Fra*_*kie 4 ssh debian jenkins

很抱歉不得不问这个问题,但我觉得到目前为止我已经尝试了所有关于 SO 的答案,但没有运气。

我有我的本地机器和我的远程服务器。Jenkins 已在我的服务器上启动并运行。

如果我打开终端并执行类似的操作,scp /path/to/file user@server:/path/to/wherever那么我的 ssh 无需密码即可正常工作

如果我在我的 Jenkins 工作中运行这个命令,我会得到 ' Host Key Verification Failed'

所以我知道我的 SSH 以我想要的方式正常工作,但是为什么我不能让 Jenkins 使用这个 SSH 密钥?

有趣的是,当我第一次设置 Jenkins 和密钥时它确实工作正常,然后我想我重新启动了我的本地机器,或者重新启动了 Jenkins,然后它停止了工作。很难说到底是什么原因造成的。

我还尝试了几种有关 ssh-agent 和 ssh-add 的选项,但这些选项似乎不起作用。

我验证了本地机器 .pub 位于服务器上的 /user/.ssh 文件夹中,并且也在授权密钥文件中。该文件夹归用户所有。

任何想法将不胜感激,我可以提供有关我的问题的更多信息。谢谢!

更新:

根据 Kensters 的建议,我做了su - jenkins,然后ssh server,它要求我添加到已知的主机。所以我认为这是朝着正确方向迈出的一步。但后来同样的问题仍然存在。

ssh server在使用我的myUsername帐户时没有密码之前我没有注意到的事情。但是如果我切换到jenkins用户,那么当我这样做时它会询问我的密码ssh server

我也ssh-keygen -R server按照建议尝试了无济于事。

abg*_*guy 5

尝试

su jenkins
ssh-keyscan YOUR-HOSTNAME >> ~/.ssh/known_hosts
Run Code Online (Sandbox Code Playgroud)

SSH Slaves 插件不支持 ECDSA。上面的命令应该为 ssh-slave 添加 RSA 密钥。