Jenkins源码管理Git无法连接的问题排查

1.问题描述

使用docker安装Jenkins,在源码管理中填写完Repository URL后,出现以下报错(可以确定是公钥和私钥配置没有问题):

image-20240122165303738

2.问题思考

对于以上问题,困扰了我很久,随即引发了我的思考:

  1. 以前我是使用war包安装的,git、jdk都是使用主机本身的环境。而使用docker安装jenkins,在jenkins内部默认是安装了git和jdk的,所以说如果是容器的方式,就不用使用宿主机的环境(不需要挂载目录)。

image-20240123013057132

  1. git源码管理出现无法连接仓库的问题首先排查ssh连接的问题:在使用war包的方式安装的时候,由于jenkins直接运行在主机,所以应在在主机上的/root/.ssh目录下生成id_rsa(私钥)id_rsa.pub(公钥)而容器的方式,容器和宿主机是两个相互隔离的文件系统,所以应该在容器内部的/root/.ssh目录下生成id_rsa(私钥)id_rsa.pub(公钥),而不是宿主机。

3.解决方案

  1. 进入容器内部生成公钥私钥
ssh-keygen -t rsa

image-20240123011838793

  1. 在github中点击setting,添加SSH Key

image-20221028231950098

image-20221028232154790

  1. SSH添加成功

image-20221028232139791

  1. 测试ssh连接:
ssh -T git@github.com
  1. 如果此时报错,报错为ssh连接超时(22端口),,那可以使用443端口:

image-20240123012250509

  1. 使用以下命令在容器内部安装vim命令:
apt-get update
apt-get -y install vim
  1. 在/root/.ssh目录下创建一个config文件
vim config
  1. 写入以下内容:
Host github.com
Hostname ssh.github.com
Port 443

image-20240123014754409

  1. 再次测试ssh免密连接:
ssh -T git@github.com

​ 显示成功验证:

image-20240123014944581

  1. 尝试使用ssh免密连接的方式克隆项目:

image-20240123015136274

  1. 配置完成就不会报错

image-20240126133157276


Jenkins源码管理Git无法连接的问题排查
https://xhablog.online/2024/01/26/Jenkins源码管理Git无法连接的问题排查/
作者
Xu huaiang
发布于
2024年1月26日
许可协议