2014-11-14 87 views
0

我被困在权限被拒绝(publickey)地狱试图将公钥复制到远程服务器,所以Jenkins可以在构建过程中使用rsync文件。将ssh选项传递给ssh-copy-id

运行:

sudo ssh-copy-id -i id_rsa.pub [email protected]

我这样做的另一台服务器,而是一个具有通过EC2,和我目前的猜测分配SSH单独的密钥对是SSH-copy-id命令试图为此连接使用错误的私钥。有没有办法通过-vvssh-copy-id所以我可以看到它试图使用什么样的jey。我查看了-o开关,但看起来似乎无法正确。

谢谢。

+0

仅供参考,我在https://github.com/centic9/generate-and-send-ssh-key上创建了一个小脚本,它一次运行必要的步骤,另外还可以确保文件/目录权限,这通常会导致我头痛...... – centic 2015-10-07 11:26:33

回答

1

我的猜测是通过运行它没有sudo。但这取决于您通常如何登录到服务器。

阅读你的问题,它们中的至少一个应该不能登录。

+0

好吧,用sudo找到某处,它在/ root中查找密钥,并且无法通过SSH。这个问题一定是它试图与SSH连接的关键,但我不知道如何告诉它在连接时使用哪一个。 – Radek 2014-11-14 13:44:03

+0

它会自动查找你的〜/ .ssh/id_rsa文件。 – 2014-11-14 13:49:02

+0

是的,问题是我对该机器有一个单独的EC2密钥,我该如何解决这个问题?我不敢相信我第一次没有记录! – Radek 2014-11-14 14:02:17

1

因此,这里是我做了什么:

添加以下到/ etc/SSH/ssh_config中:

Host xx.xx.xx.xx 
User ubuntu 
IdentityFile ~/.ssh/key-name-for-that-machine.pem 

然后复制键名称换那个,machine.pem成/无功/ lib中/詹金斯/的.ssh

没有再运行ssh-copy-id命令,只是有rsync的移动的东西时,使用该密钥文件,这里的rsync的脚本:

rsync -rvh -e 'ssh -v' "/tmp/project-DEV-${BUILD_ID}/" [email protected]:"/www/www.project-dir.net/"