Jenkins安裝和Host key verification failed問題的處理
阿新 • • 發佈:2021-09-28
在Centos7上安裝的Jenkins 2.303.1
安裝
因為新版本的Jenkins的war是用java -jar啟動, 並且無法後臺執行, 所以要麼通過screen建立一個session來執行war, 要麼就直接按官網的步驟安裝為服務. 下面是安裝為服務的步驟:
yum install wget sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key yum upgrade yum install epel-release java-11-openjdk-devel yum install jenkins systemctl status jenkins systemctl is-enabled jenkins
瀏覽器訪問後, 用提示檔案的管理員密碼登入, 選擇預設的外掛安裝
這樣安裝的Jenkins, 會建立一個jenkins使用者,
[root@vm_00 ~]# more /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
...
jenkins:x:997:994:Jenkins Automation Server:/var/lib/jenkins:/bin/false
可以看到對應的工作目錄在 /var/lib/jenkins
在Jenkins中建立的專案目錄, 就在 /var/lib/jenkins/jobs
在構建中需要用到的settings.xml, 可以新建 /var/lib/jenkins/settings 目錄, 放到這個目錄下
問題和解決
SSH Agent 出現 Host key verification failed
首先確認
- Jenkins的Git使用的ssh, 不需要預先記錄known_hosts, 配置好就可以直接用
- SSH Agent必須要先在命令列下訪問一下對方IP, 記錄了known_hosts後, 才能正常使用
因為安裝為服務的Jenkins使用的是jenkins使用者, 而且是/bin/false的使用者, 不能像普通使用者那樣登入然後ssh一下對方IP, 你需要按以下方式處理
# 以root或sudo user身份, 切換到jenkins使用者 su -s /bin/bash jenkins # 前往jenkins的home目錄 cd /var/lib/jenkins/ # 檢視.ssh下是否已經有known_hosts, 有的話, 是什麼內容, 正常情況下, 這時候是沒有對應IP記錄的 cd .ssh/ more known_hosts # 訪問一下對應IP, 記錄公鑰 ssh 192.168.123.123 # 再次檢視, 應該就有記錄了 more known_hosts
在上面的操作之後, 再執行任務, SSH Agent就不會報Host key verification failed錯誤了.