大家好,所以我想部署我的代码到远程服务器..到目前为止我已经尝试过
这是我得到的
[JenkinsBuild] $ /bin/sh -xe /var/lib/jenkins/tmp/hudson4646064064846581974.sh + rsync -PSauve ssh --exclude=JenkinsBuild app bower.json config gruntfile.js karma.conf.js LICENSE.md Makefile node_modules package.json Procfile protractor.conf.js public README README.md server.js [email protected]:/srv/dp/prod Host key verification failed. rsync: connection unexpectedly closed (0 bytes received so far) [sender] rsync error: unexplained error (code 255) at io.c(600) [sender=3.0.6]
任何想法我在这里做错了吗?
Host key verification failed.
运行jenkins的账户可能对你在~/.ssh/known_hosts.
的机器的主机密钥有不好的价值~/.ssh/known_hosts.
那么我取代了know_host文件,但我仍然有问题。 所以对于任何与know_host文件有关的问题,您都可以通过执行以下操作来修复违规密钥:
ssh-keygen -R hostnameOfOfendingKey
这将删除结尾键,现在你的known_host文件再次工作。
现在解决另一个问题,我在其他地方find答案: https : //stackoverflow.com/questions/25755418/executing-rsync-in-jenkins/25770519#25770519
而这正是我所要解决的
sudo su jenkins -s /bin/bash
然后一旦jenkins用户复制我的SSH密钥到服务器我想连接/执行命令等
ssh-copy-id [email protected]
然后它会呈现给你
[email protected]'s password: Now try logging into the machine, with "ssh '[email protected]'", and check in: .ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting.
那么我做了这个testing的目的:
bash-4.1$ rsync -PSauve ssh --exclude=JenkinsBuild /srv/pd/* [email protected]:/srv/pdc/test1
而且它没有要求input密码或任何东西。 注意我仍然是jenkins的日志。
所以现在当我用一些shell命令创buildJenkins作为构build的一部分时,它将按预期工作:D
我有一个类似的问题。
在我的情况下jenkins没有执行与预期用户(jenkins)的rsync,但与另一个(在我的情况下,JBoss)添加' whoami
'的脚本和使用ssh verbose:
rsync -e "ssh -v" .......
帮助find了问题。