【问题标题】:Why scp is not working in Jenkins为什么 scp 在 Jenkins 中不起作用
【发布时间】:2017-11-26 04:59:37
【问题描述】:

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

是什么导致了这个错误?

【问题讨论】:

  • Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Super UserUnix & Linux Stack Exchange 会是一个更好的提问地点。
  • @jww 我知道它用于编程和开发问题。但这就是我所面临的。这似乎是题外话?我清楚地表明我能够从终端执行scp 操作,并且在 Jenkins 执行相同操作时遇到问题。
  • 您是否先尝试搜索? askubuntu.com/questions/45679/…
  • "是什么导致了这个错误?" - 不同的用户和不同的.ssh 设置?从脚本启动时,sshscp 都无法向用户询问密码或主机密钥,因此您的 .ssh 应该是正确的。 -o StrictHostKeyChecking=no 的 ssh/scp 选项可能会有所帮助。

标签: linux jenkins ssh scp


【解决方案1】:

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

按照以下步骤操作:

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      编辑:

      与 Jenkins 用户联系。因此,首先更改为该用户。

      【讨论】:

      • 请注意,您需要连接一次作为用户 Jenkins 运行
      • @Stony 和阿德里安。在 jenkins shell 执行器中执行whoami 后,它显示用户为jenkins。现在 jenkins 是一个服务帐户,它没有密码。没有密码我如何连接 SSH。
      • 您可以更改为该用户...获取root,然后更改为用户...su jenkins -s /bin/bash
      • 更改为Jenkins 用户并从mac 终端尝试jenkins@ip_address of ubuntu 仍然是询问密码。但是当我尝试从 ubuntu ssh 到 mac 时,它正在连接。建立工作后these are the logs i got
      • 确保为 jenkins 生成密钥并将其添加到远程服务器。
      猜你喜欢
      • 2013-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-14
      • 1970-01-01
      • 2012-09-08
      • 2020-01-30
      • 2016-12-31
      相关资源
      最近更新 更多