为什么scp在Jenkins中不起作用

问题描述 投票:0回答:3

我的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

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

linux jenkins ssh scp
3个回答
1
投票

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

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


0
投票

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

编辑:

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


0
投票

试试这个,实际上你可能已经以root用户的身份生成了ssh-keygen。但是Build作业被部署为jenkins用户。

请遵循以下步骤:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.