温馨提示×

ubuntu jenkins如何免密

小樊
39
2026-09-22 12:47:38
栏目: 智能运维

在 Ubuntu 上让 Jenkins 免密(通常指 Jenkins 访问其他机器、执行 sudo、或拉取代码时不需要输入密码),常见有几种场景。下面按最常见需求给你说明。


一、Jenkins 访问远程服务器免密(SSH 免密)

1. 确认 Jenkins 运行用户

一般 Jenkins 用户是 jenkins

ps aux | grep jenkins

2. 生成 Jenkins 用户 SSH 密钥

sudo su - jenkins
ssh-keygen -t rsa -b 4096

一路回车即可(不要设密码)

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

ssh-copy-id user@remote-server

或手动复制:

cat ~/.ssh/id_rsa.pub

粘贴到目标服务器:

~/.ssh/authorized_keys

4. 测试

ssh user@remote-server

无需密码即成功


二、Jenkins 执行 sudo 免密

1. 编辑 sudoers

sudo visudo

添加:

jenkins ALL=(ALL) NOPASSWD: ALL

或只给特定命令:

jenkins ALL=(ALL) NOPASSWD: /usr/bin/systemctl, /bin/systemctl

2. 测试

sudo su - jenkins
sudo whoami

返回 root 且无需密码即可


三、Jenkins 拉取 Git 代码免密

方式 1:SSH 方式(推荐)

  • 在 Jenkins 中配置 Credentials → SSH Username with private key
  • 使用上面生成的 id_rsa

方式 2:Git 凭据

  • Jenkins → 凭据 → 添加
  • 类型:Username with password

四、Jenkins Web 登录免密(不推荐)

一般不建议关闭 Jenkins 登录认证
如必须:

Configure Global Security → 关闭“启用安全”

⚠️ 仅限内网测试环境


五、常见问题

SSH 仍提示密码?

  • 检查 .ssh 权限:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Jenkins 服务用户不同?

查看:

cat /etc/default/jenkins | grep JENKINS_USER

如果你说的是具体某一种免密(比如:Jenkins 到 GitHub / 到 Docker / 到 K8s),可以直接告诉我场景,我给你精确步骤。

0