我被困在权限被拒绝(公钥)地狱试图将公钥复制到远程服务器,因此Jenkins可以在构建期间rsync文件。
运行:
sudo ssh-copy-id -i id_rsa.pub ubuntu@xx.xx.xx.xx
我已经为另一台服务器做了这个,但是那个有一个单独的密钥对用于由EC2分配的SSH,我目前的猜测是ssh-copy-id试图使用错误的私钥进行此连接。有没有办法将 -vv 传递给 ssh-copy-id ,这样我才能看到它试图使用的是什么。我已经查看了-o开关,但似乎无法正确使用它。
谢谢。
答案 0 :(得分:1)
我的猜测是在没有sudo的情况下运行它。但这取决于您通常登录服务器的方式。
阅读你的问题,其中至少有一个应该失败。
答案 1 :(得分:1)
所以这就是我所做的:
在/ etc / ssh / ssh_config中添加了以下内容:
Host xx.xx.xx.xx
User ubuntu
IdentityFile ~/.ssh/key-name-for-that-machine.pem
然后将 key-name-for-that-machine.pem 复制到/var/lib/jenkins/.ssh
没有再次运行ssh-copy-id,只需让rsync在移动内容时使用该密钥文件,这里是rsync脚本:
rsync -rvh -e 'ssh -v' "/tmp/project-DEV-${BUILD_ID}/" ubuntu@xx.xx.xx.xx:"/www/www.project-dir.net/"