我的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
导致此错误的原因是什么?
答案 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”结尾