当前位置: 首页 > news >正文

Jenkins服务器SSH公钥配置步骤

步骤1. 在Jenkins服务器上生成SSH密钥

在Jenkins服务器上执行以下命令:

# 1. 生成SSH密钥对
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -N ""# 2. 设置正确的权限
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub# 3. 查看公钥内容
cat ~/.ssh/id_rsa.pub

步骤2. 复制公钥到目标服务器

方法1:使用ssh-copy-id(推荐)

# 在Jenkins服务器上执行
ssh-copy-id username@target-server-ip

方法2:手动复制

1. 在Jenkins服务器上复制公钥内容:```bashcat ~/.ssh/id_rsa.pub```2. 在目标服务器上创建或编辑authorized_keys文件:```bashmkdir -p ~/.sshchmod 700 ~/.sshecho "ssh-rsa AAAA..." >> ~/.ssh/authorized_keyschmod 600 ~/.ssh/authorized_keys

步骤3. 验证SSH连接

在Jenkins服务器上测试SSH连接:

ssh username@target-server-ip

步骤4:配置Jenkins SSH凭据

1. 登录Jenkins Web界面

2. 进入 "Manage Jenkins" > "Manage Credentials"

3. 点击 "System" > "Global credentials" > "Add Credentials"

4. 选择 "SSH Username with private key"

5. 配置以下信息:

   - ID: `jenkins-ssh-key`

   - Description: `Jenkins SSH Key for deployment`

   - Username: `目标服务器用户名`

   - Private Key: 选择 "Enter directly" 并粘贴私钥内容

   - Passphrase: 留空(如果密钥没有密码)

步骤5:在Jenkins Pipeline中使用SSH

在Jenkinsfile中添加SSH步骤:

```groovy
stage('Deploy') {steps {script {// 使用SSH执行远程命令sshagent(['jenkins-ssh-key']) {sh '''ssh username@target-server-ip 'echo "连接到目标服务器成功"# 执行部署命令/opt/scripts/deploy-zj.sh''''}}}
}
```

常见问题排查

1. 权限问题

# 检查SSH目录权限
ls -la ~/.ssh/# 修复权限
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub
chmod 600 ~/.ssh/authorized_keys

2. SSH服务配置

确保目标服务器的 `/etc/ssh/sshd_config` 包含:

PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys

3. 测试SSH连接

# 详细模式测试SSH连接
ssh -v username@target-server-ip# 使用指定密钥测试
ssh -i ~/.ssh/id_rsa username@target-server-ip

安全建议

1. 使用强密码或密钥密码

2. 定期轮换SSH密钥

3. 限制SSH用户权限

4. 使用防火墙限制SSH访问

5. 监控SSH登录日志

http://www.dtcms.com/a/338928.html

相关文章:

  • nodejs koa框架使用
  • 计算机大数据毕业设计推荐:基于Spark的气候疾病传播可视化分析系统【Hadoop、python、spark】
  • 《算法导论》第 30 章:多项式与快速傅里叶变换(FFT)
  • vue3中封装hooks
  • uniapp 应用未安装:软件包与现有软件包存在冲突
  • GEO 优化专家孟庆涛:技术破壁者重构 AI 时代搜索逻辑
  • Flask 路由与视图函数绑定机制
  • 正式签约 | OpenLoong 项目正式捐赠至开放原子开源基金会,成为全国首个具身智能方向孵化项目!
  • 【图像算法 - 18】慧眼辨良莠:基于深度学习与OpenCV的麦田杂草智能识别检测系统(附完整代码)
  • 哈希:两数之和
  • Mac(七)右键新建文件的救世主 iRightMouse
  • python将epub文件转pdf
  • UniApp 实现pdf上传和预览
  • 大模型级部署:从本地轻量化到云原生方案
  • 基于单片机智能密码锁/密码箱/门锁/门禁系统
  • Python爬虫实战:研究ICP-Checker,构建ICP 备案信息自动查询系统
  • PiscCode迅速集成YOLO-Pose 实现姿态关键点轨迹跟踪应用
  • 从繁琐到优雅:Java Lambda 表达式全解析与实战指南
  • 第1章 React组件开发基础
  • JxBrowser 8.10.0 版本发布啦!
  • iOS App 混淆工具实战,教育培训类 App 的安全保护方案
  • CTFshow系列——命令执行web34-37
  • RK3128增加usb调试模式,开放adb和root权限
  • leetcode 有效的括号
  • 西游记23:三藏不忘本,四圣试禅心;八戒挑行李;分工明确;
  • Java试题-选择题(11)
  • 从闲置到珍宝:旧物回收小程序系统重塑物品价值
  • dockerfile文件中crlf与lf换行符问题
  • 记录Webapi Excel 导出
  • 电影购票+票房预测系统 - 后端项目介绍(附源码)