温馨提示×

jenkins ubuntu如何加密

小樊
41
2026-10-18 22:54:20
栏目: 网络安全

在 Ubuntu 上使用 Jenkins 时,“加密”通常有以下几种常见场景。下面按最常见需求给你分别说明:


一、Jenkins 凭据加密(最常用)

用于加密密码、Token、密钥,避免明文出现在任务中

1. 使用 Jenkins 自带的 Credentials

  1. 打开 Jenkins
  2. 左侧菜单 → Manage Jenkins → Manage Credentials
  3. 选择 (global)
  4. 点击 Add Credentials
  5. 类型选择:
    • Username with password
    • Secret text(如 API Token)
    • SSH Username with private key
  6. 保存后,Jenkins 会自动加密存储(基于 master.key)

在 Pipeline 中使用:

withCredentials([usernamePassword(
    credentialsId: 'my-cred',
    usernameVariable: 'USER',
    passwordVariable: 'PASS'
)]) {
    sh 'curl -u $USER:$PASS http://example.com'
}

✅ 凭据不会以明文出现在日志中


二、Jenkins 配置文件加密(jenkins.xml / env)

Jenkins 本身不直接支持配置加密,但你可以:

方法 1:使用环境变量 + 凭据

export JENKINS_API_TOKEN=xxxx

在 Jenkins 中引用环境变量(不推荐明文写在脚本)

方法 2:使用 HashiCorp Vault

适合企业级:

  • Vault 存储密钥
  • Jenkins 通过 vault 插件拉取

三、Jenkins 管理员密码加密(Ubuntu)

Jenkins 管理员密码存储位置:

/var/lib/jenkins/users/admin/config.xml

密码是 PBKDF2 + salt 加密:

<passwordHash>#jbcrypt:$2a$10$...</passwordHash>

✅ 不需要手动加密
✅ 忘记密码可删除该文件重置


四、Jenkins 数据传输加密(HTTPS)

防止 Jenkins Web 被窃听

1. 使用 Nginx 反向代理 + SSL

server {
    listen 443 ssl;
    server_name jenkins.example.com;

    ssl_certificate /etc/ssl/certs/jenkins.crt;
    ssl_certificate_key /etc/ssl/private/jenkins.key;

    location / {
        proxy_pass http://127.0.0.1:8080;
    }
}

2. 强制 HTTPS

Jenkins → Manage Jenkins → Configure Global Security

  • 勾选 Enable security
  • 使用 HTTPS

五、Jenkins 数据存储加密(磁盘级)

Ubuntu 全盘加密(LUKS)

安装系统时选择:

Encrypt the new Ubuntu installation

或后期使用:

cryptsetup luksFormat /dev/sdX

六、常见错误做法 ❌

  • 在 Pipeline 写明文密码
  • 把密钥提交到 Git
  • 使用 --password=123456 启动命令

总结(推荐方案)

需求 推荐方式
密码 / Token Jenkins Credentials
配置文件 Vault
Web 安全 HTTPS
磁盘安全 LUKS

如果你能具体说一下:

  • 是 Jenkins 密码?
  • 是 Pipeline 中的密钥?
  • 还是 整个 Jenkins 服务器?

我可以直接给你对应命令和配置示例。

0 踩