步驟
jenkins已集成git插件(如無,請自行下載)
1. 去到源碼管理欄,選中Git:
使用http協議去獲取代碼
Repository URL填寫http的git地址,此時未選擇相應的Credentials,會有圖中紅色提示
HTTP協議的話,需要輸入賬號密碼來驗證,點擊Add,輸入的賬號密碼並保存,記得kind選擇“Username with password”
選后Credentials選中剛剛新增的賬號密碼,紅色提示消失;
使用ssh協議去獲取代碼
Repository URL填寫ssh的git地址,此時未選擇相應的Credentials,會有圖中紅色提示
點擊Add,需要添加ssh的credentials,這里需要上傳的是私鑰(不是公鑰!!)
私鑰文件存放在~/.ssh/id_rsa 文件中,
2. 查看是否成功獲取git代碼
首先可以查看jenkins的控制台輸出日志,是否報錯
或者直接去到jenkins的工作目錄
/var/lib/jenkins/workspace/
查看代碼是否clone下來
疑問點(公鑰和私鑰的理解)
為什么linux上直接可以git clone成功,而用jenkins去執行不成功呢,然后jenkins為什么不用公鑰而要密鑰呢
個人理解:ssh生成的公鑰和私鑰是一對的,我們在linux上通過ssh協議獲取git代碼,也是先在linux生成公鑰+私鑰,然后把公鑰上傳到git服務端,然后獲取代碼的流程是:
a. linux把公鑰上傳到git服務器;
b. git服務器使用公鑰加密信息(這里指代碼),把信息傳回給linux;
c. linux拿到信息后,通過本地的私鑰解密信息,得到代碼;
而公鑰私鑰存放在~/.ssh下,每個用戶都不一樣
而jenkins的執行是用jenkins用戶去執行的,當git服務把信息給到jenkins的時候,jenkins在他的~/.ssh下沒有對應的私鑰,因此需要將私鑰告訴jenkins,這就是jenkins為什么需要添加私鑰;