温馨提示×

Debian Jenkins如何连Git

小樊
34
2026-10-13 20:59:14
栏目: 智能运维

在 Debian 上运行的 Jenkins 连接 Git,通常分为 安装 Git、配置 Jenkins、创建任务连接仓库 几个步骤。下面按最常见场景说明(以 Git + SSH 方式 为例,也包含 HTTPS 方式)。


一、Debian 上准备 Git

1. 安装 Git

sudo apt update
sudo apt install git -y

2. 验证

git --version

二、Jenkins 安装 Git 插件

  1. 打开 Jenkins
    http://<jenkins-ip>:8080
  2. Manage Jenkins → Plugins → Available plugins
  3. 搜索并安装:
    • ✅ Git
    • ✅ Git client
  4. 安装完成后重启 Jenkins

三、Jenkins 配置 Git 路径

  1. Manage Jenkins → Global Tool Configuration
  2. 找到 Git
  3. 设置:
    • Name: Default
    • Path to Git executable:
      /usr/bin/git
      
  4. Save

四、使用 SSH 方式连接 Git(推荐)

1. 生成 Jenkins 使用的 SSH Key

在 Jenkins 服务器上(建议用 jenkins 用户):

sudo su - jenkins
ssh-keygen -t rsa -b 4096 -C "jenkins@debian"

生成:

  • 私钥:/var/lib/jenkins/.ssh/id_rsa
  • 公钥:/var/lib/jenkins/.ssh/id_rsa.pub

2. 把公钥加到 Git 仓库

  • GitHub / GitLab / Gitea:
    • Settings → SSH Keys
    • 粘贴 id_rsa.pub 内容

3. Jenkins 中添加 SSH 凭据

  1. Manage Jenkins → Credentials → System → Global credentials
  2. 添加:
    • Kind: SSH Username with private key
    • Username: git
    • Private Key: 粘贴 id_rsa
  3. Save

五、在 Jenkins 任务中连接 Git

1. 新建任务

  • New Item → Freestyle / Pipeline

2. 配置源码管理

  • 选择 Git
  • Repository URL:
    git@github.com:user/repo.git
    
  • Credentials:选择刚创建的 SSH 凭据
  • Branch:
    */main
    

六、使用 HTTPS 方式(备选)

Repository URL

https://github.com/user/repo.git

凭据类型

  • Username with password
  • 或使用 Personal Access Token(GitHub 已不支持密码)

七、Pipeline 示例(Jenkinsfile)

pipeline {
    agent any
    stages {
        stage('Clone') {
            steps {
                git branch: 'main',
                    url: 'git@github.com:user/repo.git',
                    credentialsId: 'jenkins-ssh'
            }
        }
    }
}

八、常见问题排查

1. Permission denied (publickey)

  • 确认 jenkins 用户有 .ssh 权限
  • 测试:
    sudo su - jenkins
    ssh -T git@github.com
    

2. Host key verification failed

ssh-keyscan github.com >> ~/.ssh/known_hosts

3. Jenkins 找不到 git

  • Global Tool Configuration 中路径错误

如果你用的是 GitLab / Gitea / 内网 Git / 容器 Jenkins,可以告诉我具体环境,我可以给你更精确的配置示例。

0 踩