Jenkins pipeline 之 scp

在pipeline 中使用sshagent 插件时,jenkins slave节点总是报错:

[public] Running shell script
+ scp -i **** apidoc.tar ubuntu@172.26.136.38:/home/ubuntu/mypage-apidoc/
Host key verification failed.
lost connection
script returned exit code 1

一开始想到可能是因为这个插件有问题,遂换成withCredentials 插件,代码如下:

withCredentials([sshUserPrivateKey(credentialsId: 'd4b344b4-9a3d-48d2-9fc5-b64dd9b47ea3', keyFileVariable: 'pem')]) {
              // some block
              sh "scp -i ${pem} apidoc.tar ubuntu@172.26.136.38:/home/ubuntu/mypage-apidoc/"
              sh "ssh -i ${pem} ubuntu@172.26.136.38 \"tar -xvf /home/ubuntu/mypage-apidoc/apidoc.tar -C /home/ubuntu/mypage-apidoc/\""
            }

但是问题依然没有得到解决,还是报这个错,后来发现google上有篇帖子提到这个问题,是由于slave 节点中的known_hosts 中没有对应记录造成的,于是在主节点中找到服务器的这条记录,运行如下命令。

echo "|1|WMPpuYJirJFjJUzdkyVI4CshW........9A=">known_hosts

问题终于得到解决。

参考资料:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容