首页主机资讯Ubuntu Jenkins配置中如何实现远程访问

Ubuntu Jenkins配置中如何实现远程访问

时间2026-01-21 23:44:03发布访客分类主机资讯浏览1064
导读:Ubuntu 上实现 Jenkins 远程访问的完整配置 一 网络与防火墙 开放访问端口:Jenkins 默认使用 8080(Web 管理)与 50000(Agent 通信)。在 Ubuntu 使用 UFW 放行: 命令:sudo uf...

Ubuntu 上实现 Jenkins 远程访问的完整配置

一 网络与防火墙

  • 开放访问端口:Jenkins 默认使用 8080(Web 管理)与 50000(Agent 通信)。在 Ubuntu 使用 UFW 放行:
    • 命令:sudo ufw allow 8080/tcpsudo ufw allow 50000/tcpsudo ufw reload
  • 云服务器或边界防火墙:同步在安全组/网关放行上述端口。
  • 内网穿透或域名访问:如需从公网访问内网实例,可使用 Nginx 反向代理或内网穿透工具(如 Holer)。

二 通过浏览器远程访问 Jenkins Web

  • 安装与启动(如未安装):
    • 安装 Java:sudo apt update & & sudo apt install -y openjdk-11-jdk
    • 导入密钥与源并安装 Jenkins:
      • wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
      • echo "deb https://pkg.jenkins.io/debian-stable binary/" | sudo tee /etc/apt/sources.list.d/jenkins.list
      • sudo apt update & & sudo apt install -y jenkins
    • 启动与自启:sudo systemctl start jenkinssudo systemctl enable jenkins
  • 初始化与登录:
    • 访问:http://< 服务器IP或域名> :8080
    • 解锁:查看初始密码 sudo cat /var/lib/jenkins/secrets/initialAdminPassword
    • 完成插件与管理员设置后即可远程使用 Web 界面。

三 远程执行与 CLI 两种方式

  • 方式 A:Jenkins SSH CLI(内置 SSH 服务)
    • 启用与端口:在 Manage Jenkins → Configure Global Security 启用 SSH Server,可自定义端口(如 8090)。若选择随机端口,可用命令获取:curl -Lv http://< JENKINS_URL> :8080/login 2> & 1 | grep 'X-SSH-Endpoint'
    • 用户认证:在用户配置页添加 Public Keys(公钥)。
    • 远程执行示例:ssh -l < 用户名> -p 8090 < JENKINS_HOST> who-am-issh -l < 用户名> -p 8090 < JENKINS_HOST> build < JOB> -f -v
  • 方式 B:jenkins-cli.jar(HTTP/SSH 两种传输)
    • 下载:wget < JENKINS_URL> /jnlpJars/jenkins-cli.jar
    • 用户名 + API Token(推荐):java -jar jenkins-cli.jar -s < JENKINS_URL> -auth < 用户名> :< API_TOKEN> build < JOB> -f -v
    • 环境变量:export JENKINS_USER_ID=< 用户名> JENKINS_API_TOKEN=< TOKEN> 后执行 CLI
    • SSH 传输:java -jar jenkins-cli.jar -s < JENKINS_URL> -ssh -user < 用户名> build < JOB> -f -v
    • 说明:基于 HTTP 的 CLI 无需额外开放端口;基于 SSH 的 CLI 需开放并放行 SSH 端口。

四 从 Jenkins 远程控制目标机器

  • 插件与凭据:安装 Publish Over SSH 插件;在 Manage Jenkins → Manage Credentials 添加 SSH Username with Private Key(推荐)或用户名/密码。
  • 系统配置:在 Manage Jenkins → Configure System → Publish over SSH 添加目标 SSH Server(主机、端口、凭据、超时等),可测试连接确保可用。
  • 在任务中使用(Freestyle 或 Pipeline):
    • Freestyle:构建步骤选择 Send build artifacts over SSH,配置 Source filesRemove prefixExec command 等,实现文件传输与远程命令执行。
    • Pipeline:使用 sshPublisher 步骤或结合凭据执行远程命令/传输。
  • 安全建议:优先使用 SSH 密钥 与最小权限账户;必要时限制目标主机的可写目录与可执行命令。

五 安全加固与常见问题

  • 安全加固
    • 禁用匿名访问,启用登录安全策略(如 Logged-in users can do anything),创建 管理员账户 与必要权限矩阵。
    • 对外暴露时建议前置 Nginx/HTTPS 反向代理,启用强密码/Token、限制来源 IP、定期轮换密钥与凭据。
  • 常见问题排查
    • 无法访问 8080/50000:检查云安全组/本机防火墙、服务是否运行 sudo systemctl status jenkins
    • SSH 连接失败:核对目标主机 authorized_keys 权限(700/600)、Jenkins 凭据是否匹配、端口连通性。
    • 容器部署:映射端口(如 -p 49001:8080 -p 50000:50000),并确保容器内 /var/jenkins_home/.ssh 持久化与权限正确。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu Jenkins配置中如何实现远程访问
本文地址: https://pptw.com/jishu/789254.html
Ubuntu Jenkins配置中如何处理错误 Ubuntu Jenkins配置中如何设置权限

游客 回复需填写必要信息