Ssh
無法在 Jenkins 中進行 scp
我是 Jenkins 的新使用者。我正在嘗試執行一個 shell 腳本作為 Jenkins 建構步驟的一部分。該腳本有一個將文件
scp
傳輸.tar
到遠端伺服器的命令。當我執行這個腳本時,它工作正常並給出了所需的輸出,但是當它通過 Jenkins 執行時,我得到一個錯誤:
Host key verification failed. lost connection
直到
scp
命令,腳本成功執行,然後跳過該scp
步驟。我什至無法通過 Jenkins SSH 或 SCP 到遠端伺服器。
請告知在這裡可以做什麼?
ssh
和需要安裝哪些外掛scp
?
需要將主機密鑰添加到客戶端的“known_hosts”文件中,在您的情況下,使用者在 jenkins 伺服器執行的帳戶下。所以你需要做的是:
- 為 jenkins 使用者啟用 ssh 登錄
- 以詹金斯身份登錄
- ssh 到遠端伺服器
- 回答“是否應該添加伺服器身份..”的問題是..
然後你就完成了。之後,該腳本將能夠使用使用者 pubkey 執行 scp。
簡而言之,您需要以該使用者身份將 Jenkins 的使用者 ssh 密鑰添加到您嘗試登錄的伺服器。
細節:
登錄到 jenkins 伺服器,然後:
sudo passwd jenkins
輸入兩次要給 jenkins 使用者的密碼,然後:
su jenkins cd ssh-keygen
按輸入鍵查看所有選項。然後將新的 ssh 密鑰複製到您要復製到的伺服器:
scp .ssh/id_rsa.pub user@newserver:/home/user/jenkins_key
如果系統提示您,請按“是”繼續。
然後以該使用者身份登錄該伺服器,然後:
ssh user@server
並輸入密碼,然後
cd .ssh ls -lah
如果沒有“authorized_keys”,則:
cd .ssh touch authorized_keys
如果存在“authorized_keys”文件,則忽略上述步驟,則:
cd cat jenkins_key >> .ssh/authorized_keys rm -rf ./jenkins_key
退出/註銷伺服器然後回到詹金斯伺服器:
ssh user@newserver
您應該直接登錄,無需提示或輸入密碼
現在在 Jenkins 中再次執行 scp 作業