温馨提示×

Debian Jenkins如何配密钥

小樊
38
2026-10-19 16:13:45
栏目: 智能运维

在 Debian 上给 Jenkins 配置密钥,通常有以下几种常见场景。下面按“最常用 → 进阶”给你说明,基本照做即可。


一、Jenkins 用 SSH 密钥拉取 Git 代码(最常见)

1️⃣ 在 Debian 上生成密钥(推荐用 jenkins 用户)

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

一路回车,生成:

  • ~/.ssh/id_rsa(私钥)
  • ~/.ssh/id_rsa.pub(公钥)

2️⃣ 把公钥加到 Git 仓库

cat ~/.ssh/id_rsa.pub

复制内容,添加到:

  • GitHub / GitLab:Settings → SSH Keys
  • 内网 Git:对应管理界面

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 → Enter directly
    • 粘贴 ~/.ssh/id_rsa 内容
  6. 保存

4️⃣ Job 中使用

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

二、Jenkins 连接远程服务器(SSH 部署)

1️⃣ 生成密钥(已有可跳过)

sudo su - jenkins
ssh-keygen

2️⃣ 公钥放到目标服务器

ssh-copy-id user@remote-server

3️⃣ Jenkins 安装插件

  • Publish Over SSH
  • 或 SSH Pipeline Steps

4️⃣ 配置远程服务器

Manage Jenkins → Configure System → Publish over SSH

  • Hostname
  • Username
  • 使用刚才的私钥

三、Jenkins 使用密钥登录 Debian(反向)

如果你是 从别的机器用密钥登录 Jenkins 所在的 Debian:

# 当前用户
ssh-keygen
ssh-copy-id jenkins@debian-ip

确保:

sudo nano /etc/ssh/sshd_config
PubkeyAuthentication yes
PasswordAuthentication no
sudo systemctl restart ssh

四、常见问题

❌ Permission denied (publickey)

  • 确认用的是 jenkins 用户生成的密钥
  • 确认 Git 公钥正确
  • 测试:
sudo su - jenkins
ssh -T git@github.com

❌ 私钥格式错误

Jenkins 只接受 PEM 格式:

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

五、总结一句话

Jenkins 的密钥 = jenkins 用户的 SSH 密钥 + Jenkins Credentials 里存私钥

如果你是想:

  • ✅ 配 GitHub
  • ✅ 配 K8s
  • ✅ 配 Ansible
  • ✅ Pipeline 里用密钥

告诉我具体场景,我给你写完整示例。

0 踩