Jenkins解決Host key verification failed


1.在沒有做任何操作時,是這樣報錯的

a.在任務中配置遠程執行命令

rsync -raz --delete --progress  target/testweb-v1.1.jar  root@10.0.0.41:/data/

ssh root@10.0.0.41 "java -jar /data/testweb-v1.1.jar"

要遠程到10.0.0.41這台服務器上執行java命令,所以這台服務器上得有java環境,簡單點用yum裝就行:

yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel

b.構建后報錯信息

 

2.報錯原因

a.jenkins普通用戶無法執行某些系統命令;

b.我們並沒有為jenkins生成過密鑰對,也沒有將他的公鑰拷到目標服務器上.

  在安裝jenkins后,系統生成了jenkins這個普通用戶,但是在/etc/passwd中,他的shell是/bin/false,所以他不能登錄系統,也沒有家目錄;

  首先我們修改他的登錄權限,將/bin/false改為/bin/bash,切換到jenkins用戶,su - jenkins,他的終端顯示為-bash-4.2$,修改終端顯示.

終端修改完之后長這個樣子

生成密鑰對

具體步驟

vim ~/.bash_profile
export PS1='[\u@\h \W]\$'
source ~/.bash_profile
# 給jenkins生成密鑰對
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.0.0.41
# 驗證
ssh 'root@10.0.0.41'

3.使用sudo提升普通用戶權限

  此時是完成了第二步,但還沒有操作第一步,在文件末尾添加一行,就這么一行就有很多要注意的地方,首先修改文件權限為600,然后用viduso去修改文件,中間的空隙不是空格,而是tab,命令和命令之間要用逗號,保存退出后,將權限改為440,而不是400,最后用visudo -c檢查語法是否出錯.

jenkins        ALL=(ALL)    NOPASSWD: /usr/bin/ssh, /usr/bin/rsync

jenkins        ALL=(ALL)    NOPASSWD: ALL

這兩行內容任意選一個都行.

重啟服務,構建任務

參考博客:https://blog.csdn.net/cdnight/article/details/81078191


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM