从Jenkins服务器部署到另一个服务器:主机密钥验证失败。

5

我正在尝试从Jenkins服务器部署到另一台服务器,但我无法使用Jenkins Build脚本完成。

当我在Jenkins服务器上时,我可以进行部署。例如:

:/var/lib/jenkins/workspace/MyProject$ scp my_file ubuntu@my_address:~/MyProject

程序运行得很好;然而,

当我指定:

scp my_file ubuntu@my_address:~/MyProject

在Jenkins窗口的“执行Shell”下,我遇到了以下错误:
Host key verification failed.

我知道第一次直接在 Jenkins 服务器上运行上述命令时,会提示:
The authenticity of host 'my_address (my_address)' can't be established.
ECDSA key fingerprint is cf:4b:58:66:d6:d6:87:35:76:1c:aa:cf:9a:7c:78:cc.
Are you sure you want to continue connecting (yes/no)?

因此,我必须点击“是”才能继续。但由于我已经直接在终端中了,我不需要做任何额外的操作。

对于这个问题的第二个答案:Jenkins主机密钥验证失败

表明,如果我理解正确的话。

我错过了什么?我该怎么解决我的问题?

3个回答

14

我已经搞定了,我需要做两件事情:

1)我必须使用-o StrictHostKeyChecking=no

scp -v -o StrictHostKeyChecking=no my_file ubuntu@my_address:~/MyProject

改为:

scp my_file ubuntu@my_address:~/MyProject

2)我需要将我的id_rsa复制到/var/lib/jenkins/.ssh

/var/lib/jenkins/.ssh文件夹及其内部的文件需要归属于jenkins用户。


1

虽然这是一个老问题,但可能有人会发现这很有用:

ssh root@jenkinsMaster 'echo "$(ssh-keyscan -t rsa,dsa jenkinsSlave)" >> /root/.ssh/known_hosts'


0

确保首先建立ssh连接到远程主机,然后尝试将文件复制到远程主机。

ssh -o StrictHostKeyChecking=no user@ip_addr

scp file_name user@ip_addr:/home/user


你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心找到有关如何编写良好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接