【问题标题】:Why wont bash script run by Maven SCP my file?为什么 Maven SCP 不会运行我的文件的 bash 脚本?
【发布时间】:2014-03-07 14:27:10
【问题描述】:

我有一个 bash 脚本,其中包括尝试将文件从当前主机 (Windows/Cygwin) SCP 到远程主机 (Suse)。

当我自己在 Cygwin 中运行脚本时,该脚本运行良好。通过 SCP 传输文件,然后通过 SSH 到远程计算机以运行一些进一步的命令(与将文件部署到应用程序服务器有关)。

当脚本作为 Jenkins CI 构建的一部分由 Maven 运行时,它会失败,并显示有关密钥对被拒绝的错误。

来自 Jenkins 工作日志:

Host key verification failed.
lost connection

【问题讨论】:

  • 这是因为 jenkins 进程正在以不同的 unix 用户身份运行,该用户可能没有相同的密钥存储在 ~/.ssh 目录中。
  • 我通过 ssh -i 标志传递密钥文件,如果 maven/jenkins 用户由于某种原因无法读取该文件,则用户的事情是合理的。有没有一种方法可以让我以 Windows 用户身份启动 cygwin,并且可以在整个系统中完全访问?或者也许以某种方式让 cygwin 中的所有用户都可以使用密钥?
  • cygwin 抱歉不太清楚。

标签: bash maven jenkins cygwin ssh-keys


【解决方案1】:

使用 StrictHostKeyChecking 让您的作业运行一次:

scp -o 'StrictHostKeyChecking no' ...

这将记录如下内容:

Warning: Permanently added '<host>, <ipaddr>' (<keytype>) to the list of known hosts.

之后,移除 StrictHostKeyChecking。

【讨论】:

  • sborsky - 你刚刚完成了我的一周!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-03
  • 2013-11-04
  • 2020-12-21
  • 1970-01-01
  • 2015-06-30
相关资源
最近更新 更多