Ubuntu Jenkins配置中如何实现远程访问
导读:Ubuntu 上实现 Jenkins 远程访问的完整配置 一 网络与防火墙 开放访问端口:Jenkins 默认使用 8080(Web 管理)与 50000(Agent 通信)。在 Ubuntu 使用 UFW 放行: 命令:sudo uf...
Ubuntu 上实现 Jenkins 远程访问的完整配置
一 网络与防火墙
- 开放访问端口:Jenkins 默认使用 8080(Web 管理)与 50000(Agent 通信)。在 Ubuntu 使用 UFW 放行:
- 命令:
sudo ufw allow 8080/tcp、sudo ufw allow 50000/tcp、sudo 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.listsudo apt update & & sudo apt install -y jenkins
- 启动与自启:
sudo systemctl start jenkins、sudo systemctl enable jenkins
- 安装 Java:
- 初始化与登录:
- 访问:
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-i、ssh -l < 用户名> -p 8090 < JENKINS_HOST> build < JOB> -f -v
- 启用与端口:在 Manage Jenkins → Configure Global Security 启用 SSH Server,可自定义端口(如 8090)。若选择随机端口,可用命令获取:
- 方式 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 files、Remove prefix、Exec 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 持久化与权限正确。
- 无法访问 8080/50000:检查云安全组/本机防火墙、服务是否运行
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Jenkins配置中如何实现远程访问
本文地址: https://pptw.com/jishu/789254.html
