Ssh

無法在 Jenkins 中進行 scp

  • February 12, 2020

我是 Jenkins 的新使用者。我正在嘗試執行一個 shell 腳本作為 Jenkins 建構步驟的一部分。該腳本有一個將文件scp傳輸.tar到遠端伺服器的命令。

當我執行這個腳本時,它工作正常並給出了所需的輸出,但是當它通過 Jenkins 執行時,我得到一個錯誤:

Host key verification failed.
lost connection

直到scp命令,腳本成功執行,然後跳過該scp步驟。

我什至無法通過 Jenkins SSH 或 SCP 到遠端伺服器。

請告知在這裡可以做什麼?ssh和需要安裝哪些外掛scp

需要將主機密鑰添加到客戶端的“known_hosts”文件中,在您的情況下,使用者在 jenkins 伺服器執行的帳戶下。所以你需要做的是:

  1. 為 jenkins 使用者啟用 ssh 登錄
  2. 以詹金斯身份登錄
  3. ssh 到遠端伺服器
  4. 回答“是否應該添加伺服器身份..”的問題是..

然後你就完成了。之後,該腳本將能夠使用使用者 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 作業

引用自:https://unix.stackexchange.com/questions/284173