在 Ubuntu 上让 Jenkins 免密(通常指 Jenkins 访问其他机器、执行 sudo、或拉取代码时不需要输入密码),常见有几种场景。下面按最常见需求给你说明。
一般 Jenkins 用户是 jenkins
ps aux | grep jenkins
sudo su - jenkins
ssh-keygen -t rsa -b 4096
一路回车即可(不要设密码)
ssh-copy-id user@remote-server
或手动复制:
cat ~/.ssh/id_rsa.pub
粘贴到目标服务器:
~/.ssh/authorized_keys
ssh user@remote-server
无需密码即成功
sudo visudo
添加:
jenkins ALL=(ALL) NOPASSWD: ALL
或只给特定命令:
jenkins ALL=(ALL) NOPASSWD: /usr/bin/systemctl, /bin/systemctl
sudo su - jenkins
sudo whoami
返回 root 且无需密码即可
id_rsa一般不建议关闭 Jenkins 登录认证
如必须:
Configure Global Security → 关闭“启用安全”
⚠️ 仅限内网测试环境
.ssh 权限:chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
查看:
cat /etc/default/jenkins | grep JENKINS_USER
如果你说的是具体某一种免密(比如:Jenkins 到 GitHub / 到 Docker / 到 K8s),可以直接告诉我场景,我给你精确步骤。