我的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
导致此错误的原因是什么?
尝试在目标服务器中添加ssh密钥。它应该在某个地方/home/ben/.ssh/id_rsa.pub,复制内容并将其粘贴到/Users/ben/.ssh/authorized_keys(在新行中不要删除此文件中已有的内容)
但这项工作只有在jenkins在用户Ben下运行时,否则你可能必须从运行Jenkins的用户那里获取密钥。
答案在你的代码中。 Host key verification failed.
用ssh连接一次到你的服务器并接受密钥。然后它应该工作。如果您无法使用SSH连接,请先修复该错误。
编辑:
与Jenkins用户联系。所以首先改变那个用户。
试试这个,实际上你可能已经以root用户的身份生成了ssh-keygen。但是Build作业被部署为jenkins用户。
请遵循以下步骤:
登录jenkins服务器su jenkins ssh-keygen现在将密钥从/var/jenkins_home/.ssh/id_rsa.pub复制到生产服务器〜/ .ssh / authorized_keys
提示:确保密钥以jenkins名称“jenkins @ 6cd0dfe4f9a8”结束