0


【超级全面】jenkins通过SSH凭证方式拉取Gitee代码(含错误解决方法)

【超级全面】jenkins通过SSH凭证方式拉取Gitee代码(含错误解决方法)

jenkins通过SSH凭证方式拉取Gitee代码

使用 SSH 密钥方式拉取 Gitee 上的代码,我们只需要在服务器上使用 root 用户生成公钥和私钥,将公钥配置到 Gitee 中,再将私钥配置到 Jenkins 中。这样 Jenkins 就可以免密从 Gitee 上拉取代码了。

一、生成密钥

1、生成密钥之前检查一下是否已经生成密钥,存在密钥则进行删除:

删除存在的密钥是防止跟着此流程走出一些未知的错

  1. root@bpvank-virtual-machine:~# cd /root/.ssh
  2. root@bpvank-virtual-machine:~/.ssh# ls
  3. id_rsa id_rsa.pub
  4. root@bpvank-virtual-machine:~/.ssh# rm id_rsa
  5. root@bpvank-virtual-machine:~/.ssh# rm id_rsa.pub
  6. root@bpvank-virtual-machine:~/.ssh# ls

2、在/root/.ssh目录下使用命令

  1. ssh-keygen -t rsa

生成公钥和私钥,输入命令后一直按回车即可

  1. root@bpvank-virtual-machine:~/.ssh# ssh-keygen -t rsa
  2. Generating public/private rsa key pair.
  3. Enter fileinwhich to save the key (/root/.ssh/id_rsa):
  4. Enter passphrase (empty for no passphrase):
  5. Enter same passphrase again:
  6. Your identification has been saved in /root/.ssh/id_rsa.
  7. Your public key has been saved in /root/.ssh/id_rsa.pub.
  8. The key fingerprint is:
  9. SHA256:DrGdLSo+dVV9Q0doMHWw6FINU9rdH3psE0iol6FqVvw root@bpvank-virtual-machine
  10. The key's randomart image is:
  11. +---[RSA 2048]----+
  12. | **==+||ooO==+||.. o.*o+++|| + B.= o +|| o S.=..=.|| .B.. E o .||..+..||... ||..|
  13. +----[SHA256]-----+

3、生成的公钥和私钥文件如下:

  1. root@bpvank-virtual-machine:~/.ssh# ls
  2. id_rsa id_rsa.pub

二、添加公钥到你的Gitee帐户

1、查看生成的公钥

  1. root@bpvank-virtual-machine:~/.ssh# cat id_rsa.pub
  2. ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDbXXDH792Z1Z382EQingiZWHjXWuds++v16HIT1uzA7dmpR41dGgmg9trGlJ/sbk8DPU83aAZZSy5kp9TaLUnFfxGOQU3NNMe78kRt2eOTaAnzoqhA8ZwyuXIgQVu7234N5HyLhmv0umzH/N+2Sdg0H9orBm+55BcrVzbsKSzPatZrGRlgNyOc2O/CLak0nn4/ivAglBgZJeODwEaTQAEOcdfdQpTvsJO+EdjOlRcfWWa4ylQl3zRBzSLklzfONo4y4AnCvDNuCTLzbSWnnG9Ti0v0b0aYwvqliFqGp67/EpQyjKfctoPgkGXMm5rfbhgo9Nmhi0++6Wi2kzLGu4Fh root@bpvank-virtual-machine

2、登录 Gitee,通过点击头像中的设置选项,进入后台,配置刚才生成的公钥文件里面的内容。

配置公钥

三、添加私钥到Jenkins的SSH凭证中并创建项目使用SSH凭证

1、查看生成的私钥

  1. root@bpvank-virtual-machine:~/.ssh# cat id_rsa
  2. -----BEGIN RSA PRIVATE KEY-----
  3. MIIEowIBAAKCAQEA211wx+/dmdWd/NhEIp4ImVh411rnbPvr9ehyE9bswO3ZqUeN
  4. XRoJoPbaxpSf7G5PAz1PN2gGWUsuZKfU2i1JxX8RjkFNzTTHu/JEbdnjk2gJ86Ko
  5. ......
  6. LyKnjUsIBjC4uk98sJ29KwKBgDR8bjDXBwo3BusyZnWBGr33iZ0AC8GBMF1gV0ce
  7. E8zAcEmOapDMQ12ap65b3lg4Rxj8gxKo8W4KBrbRwFaQ1iukNx4qg/m5MDd4IwnQ
  8. 0J2wXpZyN+at4ez5QJFn6a2JiKIVHmnNNuMFiB82jkrvi84B7HsH
  9. -----END RSA PRIVATE KEY-----

2、在 Jenkins 中新建 SSH 凭证,我们刚才使用 root 用户来生成密钥,所以用户名填 root,ID可以不填保存后会自动生成,私钥填我们生成的私钥文件中的内容。

注意:复制私钥时头尾也需要复制添加进去!!!

-----BEGIN RSA PRIVATE KEY-----

-----END RSA PRIVATE KEY-----

在这里插入图片描述

3、这样我们就可以在 Jenkins 中的项目配置 SSH 凭证了,注意这时需要使用项目的 SSH 地址了,如下所示:

①创建项目

在这里插入图片描述

②配置git信息,然后点击下方的应用/保存

在这里插入图片描述

③可能会报如下错误,报错了也点击下方的应用/保存

在这里插入图片描述

三、解决错误并在本地git仓库中创建一个与远程git仓库的关联

①进入git仓库目录

  1. # 1、查看git仓库目录
  2. root@bpvank-virtual-machine:~/.ssh# find ~ -name ".git" -type d
  3. /root/.jenkins/workspace/java-project-01/.git
  4. /root/.jenkins/workspace/java-project-02/.git
  5. # 2、进入刚刚创建项目的git仓库目录
  6. root@bpvank-virtual-machine:~/.ssh# cd /root/.jenkins/workspace/java-project-02/.git# 3、ls查看
  7. root@bpvank-virtual-machine:~/.jenkins/workspace/java-project-02/.git# ls
  8. branches config description FETCH_HEAD HEAD hooks info objects refs

②使用

  1. git remote -v

查看你当前的remote url

  1. root@bpvank-virtual-machine:~/.jenkins/workspace/java-project-02/.git# git remote -v
  2. origin https://github.com/test1/test1.git (fetch)
  3. origin https://github.com/test1/test1.git (push)

③使用

  1. git remote set-url

来修改你的remote url,不用https协议,改用git 协议

  1. git remote set-url origin git@gitee.com:bpvank/jenkins-testing.git

④再次使用

  1. git remote -v

查看remote url

  1. root@bpvank-virtual-machine:~/.jenkins/workspace/java-project-02/.git# git remote -v
  2. origin git@gitee.com:bpvank/jenkins-testing.git (fetch)
  3. origin git@gitee.com:bpvank/jenkins-testing.git (push)

⑤再运行命令

  1. /usr/bin/git ls-remote -h git地址
  1. root@bpvank-virtual-machine:~/.jenkins/workspace/java-project-02/.git# /usr/bin/git ls-remote -h git@gitee.com:bpvank/jenkins-testing.git
  2. The authenticity of host'gitee.com (212.64.63.215)' can't be established.
  3. ECDSA key fingerprint is SHA256:FQGC9Kn/eye1W8icdBgrQp+KkGYoFgbVr17bmjey0Wc.
  4. Are you sure you want to continue connecting (yes/no)? yes
  5. Warning: Permanently added 'gitee.com,212.64.63.215' (ECDSA) to the list of known hosts.
  6. 3b671ae7df7898d9ad4315bd1354a5f00ab8c158 refs/heads/master

解释:这个命令通常用于在本地git仓库中创建一个与远程git仓库的关联,或者更新本地git仓库中远程引用的最新状态信息。

⑥成功解决,在项目中点击配置查看,会发现刚才的错误解决了

查看配置
错误解决

四、构建项目

①我们构建项目时,可以在控制台输出中看到下载的git源代码的位置和使用了刚才配置的 SSH 凭证。

成功

②最后在Linux中,进入下载的git源代码的位置,查看文件是否拉取成功!

  1. root@bpvank-virtual-machine:~# cd /root/.jenkins/workspace/java-project-02
  2. root@bpvank-virtual-machine:~/.jenkins/workspace/java-project-02# ls
  3. pom.xml README.md springmvctest.iml src
标签: jenkins ssh gitee

本文转载自: https://blog.csdn.net/weixin_46107112/article/details/130847047
版权归原作者 Bpvank 所有, 如有侵权,请联系我们删除。

“【超级全面】jenkins通过SSH凭证方式拉取Gitee代码(含错误解决方法)”的评论:

还没有评论