2014-11-14 123 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/"