为什么scp在Jenkins中不起作用

时间:2017-06-22 19:02:23

标签: linux jenkins ssh scp

我的Jenkins托管在Ubuntu 16上。我需要将一些构建文件从Ubuntu复制到我的Mac机器上。

在“执行shell脚本”中我使用以下命令:

scp -r /home/ben/GIT/dock/MySql ben@ipaddress:/Users/ben/Desktop/MySql

我可以从Ubuntu终端运行相同的命令。但是当我从Jenkins执行相同的命令时,它在控制台输出中显示以下错误:

Started by user admin
Building in workspace /home/ben/GIT/dock
[dock] $ /bin/sh -xe /tmp/hudson1981676562360554479.sh
+ cd /home/ben/GIT/dock/
+ pwd
/home/ben/GIT/dock
+ scp -r /home/ben/GIT/dock/MySql ben@ip_address:/Users/ben/Desktop/MySql
Host key verification failed.
lost connection
Build step 'Execute shell' marked build as failure
Finished: FAILURE

导致此错误的原因是什么?

3 个答案:

答案 0 :(得分:1)

尝试在目标服务器中添加ssh密钥。 它应该在某个地方/home/ben/.ssh/id_rsa.pub,复制内容并将其粘贴到/Users/ben/.ssh/authorized_keys(在新行中不要删除此文件中已有的内容)

但是只有当jenkins在用户Ben下运行时才能正常工作,否则你可能必须从运行Jenkins的用户那里获取密钥。

答案 1 :(得分:0)

答案在你的代码中。 Host key verification failed.使用ssh连接一次到您的服务器并接受密钥。然后它应该工作。如果您无法使用SSH连接,请先修复该错误。

修改

与Jenkins用户联系。所以首先改变那个用户。

答案 2 :(得分:0)

尝试一下,实际上您可能已经以root用户身份生成了ssh-keygen。但是构建作业是作为jenkins用户部署的。

请按照以下步骤操作:

登录到jenkins服务器 苏·詹金斯 ssh-keygen 现在将密钥从/var/jenkins_home/.ssh/id_rsa.pub复制到生产服务器〜/ .ssh / authorized_keys

提示:确保密钥以jenkins名称“ jenkins @ 6cd0dfe4f9a8”结尾