jenkins通過SSH憑證方式拉取Gitee代碼
使用 SSH 密鑰方式拉取 Gitee 上的代碼,我們只需要在服務(wù)器上使用 root 用戶生成公鑰和私鑰,將公鑰配置到 Gitee 中,再將私鑰配置到 Jenkins 中。這樣 Jenkins 就可以免密從 Gitee 上拉取代碼了。
一、生成密鑰
1、生成密鑰之前檢查一下是否已經(jīng)生成密鑰,存在密鑰則進(jìn)行刪除:
刪除存在的密鑰是防止跟著此流程走出一些未知的錯
root@bpvank-virtual-machine:~# cd /root/.ssh
root@bpvank-virtual-machine:~/.ssh# ls
id_rsa id_rsa.pub
root@bpvank-virtual-machine:~/.ssh# rm id_rsa
root@bpvank-virtual-machine:~/.ssh# rm id_rsa.pub
root@bpvank-virtual-machine:~/.ssh# ls
2、在/root/.ssh目錄下使用命令ssh-keygen -t rsa
生成公鑰和私鑰,輸入命令后一直按回車即可
root@bpvank-virtual-machine:~/.ssh# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:DrGdLSo+dVV9Q0doMHWw6FINU9rdH3psE0iol6FqVvw root@bpvank-virtual-machine
The key's randomart image is:
+---[RSA 2048]----+
| **==+|
| ooO==+|
| . . o.*o+++|
| + B.= o +|
| o S.= .. =.|
| .B.. E o .|
| ..+.. |
| ... |
| .. |
+----[SHA256]-----+
3、生成的公鑰和私鑰文件如下:
root@bpvank-virtual-machine:~/.ssh# ls
id_rsa id_rsa.pub
二、添加公鑰到你的Gitee帳戶
1、查看生成的公鑰
root@bpvank-virtual-machine:~/.ssh# cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDbXXDH792Z1Z382EQingiZWHjXWuds++v16HIT1uzA7dmpR41dGgmg9trGlJ/sbk8DPU83aAZZSy5kp9TaLUnFfxGOQU3NNMe78kRt2eOTaAnzoqhA8ZwyuXIgQVu7234N5HyLhmv0umzH/N+2Sdg0H9orBm+55BcrVzbsKSzPatZrGRlgNyOc2O/CLak0nn4/ivAglBgZJeODwEaTQAEOcdfdQpTvsJO+EdjOlRcfWWa4ylQl3zRBzSLklzfONo4y4AnCvDNuCTLzbSWnnG9Ti0v0b0aYwvqliFqGp67/EpQyjKfctoPgkGXMm5rfbhgo9Nmhi0++6Wi2kzLGu4Fh root@bpvank-virtual-machine
2、登錄 Gitee,通過點(diǎn)擊頭像中的設(shè)置選項(xiàng),進(jìn)入后臺,配置剛才生成的公鑰文件里面的內(nèi)容。
三、添加私鑰到Jenkins的SSH憑證中并創(chuàng)建項(xiàng)目使用SSH憑證
1、查看生成的私鑰
root@bpvank-virtual-machine:~/.ssh# cat id_rsa
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEA211wx+/dmdWd/NhEIp4ImVh411rnbPvr9ehyE9bswO3ZqUeN
XRoJoPbaxpSf7G5PAz1PN2gGWUsuZKfU2i1JxX8RjkFNzTTHu/JEbdnjk2gJ86Ko
......
LyKnjUsIBjC4uk98sJ29KwKBgDR8bjDXBwo3BusyZnWBGr33iZ0AC8GBMF1gV0ce
E8zAcEmOapDMQ12ap65b3lg4Rxj8gxKo8W4KBrbRwFaQ1iukNx4qg/m5MDd4IwnQ
0J2wXpZyN+at4ez5QJFn6a2JiKIVHmnNNuMFiB82jkrvi84B7HsH
-----END RSA PRIVATE KEY-----
2、在 Jenkins 中新建 SSH 憑證,我們剛才使用 root 用戶來生成密鑰,所以用戶名填 root,ID可以不填保存后會自動生成,私鑰填我們生成的私鑰文件中的內(nèi)容。
注意:復(fù)制私鑰時(shí)頭尾也需要復(fù)制添加進(jìn)去?。?!
-----BEGIN RSA PRIVATE KEY-----
-----END RSA PRIVATE KEY-----
3、這樣我們就可以在 Jenkins 中的項(xiàng)目配置 SSH 憑證了,注意這時(shí)需要使用項(xiàng)目的 SSH 地址了,如下所示:
①創(chuàng)建項(xiàng)目
②配置git信息,然后點(diǎn)擊下方的應(yīng)用/保存
③可能會報(bào)如下錯誤,報(bào)錯了也點(diǎn)擊下方的應(yīng)用/保存
三、解決錯誤并在本地git倉庫中創(chuàng)建一個與遠(yuǎn)程git倉庫的關(guān)聯(lián)
①進(jìn)入git倉庫目錄
# 1、查看git倉庫目錄
root@bpvank-virtual-machine:~/.ssh# find ~ -name ".git" -type d
/root/.jenkins/workspace/java-project-01/.git
/root/.jenkins/workspace/java-project-02/.git
# 2、進(jìn)入剛剛創(chuàng)建項(xiàng)目的git倉庫目錄
root@bpvank-virtual-machine:~/.ssh# cd /root/.jenkins/workspace/java-project-02/.git
# 3、ls查看
root@bpvank-virtual-machine:~/.jenkins/workspace/java-project-02/.git# ls
branches config description FETCH_HEAD HEAD hooks info objects refs
②使用git remote -v
查看你當(dāng)前的remote url
root@bpvank-virtual-machine:~/.jenkins/workspace/java-project-02/.git# git remote -v
origin https://github.com/test1/test1.git (fetch)
origin https://github.com/test1/test1.git (push)
③使用git remote set-url
來修改你的remote url,不用https協(xié)議,改用git 協(xié)議
git remote set-url origin git@gitee.com:bpvank/jenkins-testing.git
④再次使用git remote -v
查看remote url
root@bpvank-virtual-machine:~/.jenkins/workspace/java-project-02/.git# git remote -v
origin git@gitee.com:bpvank/jenkins-testing.git (fetch)
origin git@gitee.com:bpvank/jenkins-testing.git (push)
⑤再運(yùn)行命令/usr/bin/git ls-remote -h git地址
root@bpvank-virtual-machine:~/.jenkins/workspace/java-project-02/.git# /usr/bin/git ls-remote -h git@gitee.com:bpvank/jenkins-testing.git
The authenticity of host 'gitee.com (212.64.63.215)' can't be established.
ECDSA key fingerprint is SHA256:FQGC9Kn/eye1W8icdBgrQp+KkGYoFgbVr17bmjey0Wc.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'gitee.com,212.64.63.215' (ECDSA) to the list of known hosts.
3b671ae7df7898d9ad4315bd1354a5f00ab8c158 refs/heads/master
解釋:這個命令通常用于在本地git倉庫中創(chuàng)建一個與遠(yuǎn)程git倉庫的關(guān)聯(lián),或者更新本地git倉庫中遠(yuǎn)程引用的最新狀態(tài)信息。
⑥成功解決,在項(xiàng)目中點(diǎn)擊配置查看,會發(fā)現(xiàn)剛才的錯誤解決了
文章來源:http://www.zghlxwxcb.cn/news/detail-706874.html
四、構(gòu)建項(xiàng)目
①我們構(gòu)建項(xiàng)目時(shí),可以在控制臺輸出中看到下載的git源代碼的位置和使用了剛才配置的 SSH 憑證。
文章來源地址http://www.zghlxwxcb.cn/news/detail-706874.html
②最后在Linux中,進(jìn)入下載的git源代碼的位置,查看文件是否拉取成功!
root@bpvank-virtual-machine:~# cd /root/.jenkins/workspace/java-project-02
root@bpvank-virtual-machine:~/.jenkins/workspace/java-project-02# ls
pom.xml README.md springmvctest.iml src
到了這里,關(guān)于【超級全面】jenkins通過SSH憑證方式拉取Gitee代碼(含錯誤解決方法)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!