温馨提示×

debian jenkins怎么配密钥

小樊
44
2026-10-22 14:49:45
栏目: 智能运维

下面按最常见场景给你讲:在 Debian 上安装 Jenkins 后,如何配置 SSH 密钥,用于 Jenkins 拉取 Git 代码或登录远程服务器。


一、Jenkins 拉取 Git 仓库(SSH 密钥)

1. 生成密钥(在 Jenkins 服务器上)

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

默认生成:

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

⚠️ 一定要用 jenkins 用户生成,否则权限会出问题。


2. 把公钥加到 Git 平台

查看公钥:

cat /var/lib/jenkins/.ssh/id_rsa.pub
  • GitHub / GitLab:Settings → SSH Keys
  • 私有 Git 服务器:加到 ~git/.ssh/authorized_keys

3. Jenkins 中配置凭据

  1. 打开 Jenkins
  2. Manage Jenkins → Credentials → System → Global credentials
  3. 点击 Add Credentials
  4. 类型选择:SSH Username with private key
  5. 填写:
    • Username:git
    • Private Key:粘贴
      cat /var/lib/jenkins/.ssh/id_rsa
      
  6. 保存

4. Job 中使用

  • 源码管理选 Git
  • Repository URL:
    git@github.com:user/repo.git
    
  • Credentials 选择刚创建的

二、Jenkins 登录远程服务器(SSH 密钥)

1. 生成密钥(jenkins 用户)

sudo -u jenkins ssh-keygen

2. 拷贝公钥到目标服务器

sudo -u jenkins ssh-copy-id user@remote-server

测试:

sudo -u jenkins ssh user@remote-server

3. Jenkins 配置 Publish Over SSH(推荐)

安装插件:Publish Over SSH

配置路径:

Manage Jenkins → Configure System → Publish over SSH

填写:

  • Name
  • Hostname
  • Username
  • 私钥(粘贴 id_rsa)

三、常见问题

❌ Permission denied (publickey)

原因:

  • 密钥不是 jenkins 用户
  • .ssh 权限不对

修复:

chmod 700 /var/lib/jenkins/.ssh
chmod 600 /var/lib/jenkins/.ssh/id_rsa
chown -R jenkins:jenkins /var/lib/jenkins/.ssh

❌ Host key verification failed

sudo -u jenkins ssh-keyscan remote-server >> /var/lib/jenkins/.ssh/known_hosts

如果你说的是:

  • Jenkins 启动用密钥登录
  • Debian SSH 登录 Jenkins 服务器
  • Pipeline 里用 SSH

可以告诉我具体场景,我给你更精确的配置。

0 踩