当前位置: 首页 > 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有些目标服务器配置在  /root/.ssh/ 路径下

步骤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.lryc.cn/news/625944.html

相关文章:

  • 哈希:两数之和
  • 磁盘镜像格式RAW、QCOW2、VHD、VMDK的核心区别
  • Android -登录注册实践技术总结
  • Android SystemServer 中 Service 的创建和启动方式
  • 代码随想录Day56:图论(冗余连接、冗余连接II)
  • CLIK-Diffusion:用于牙齿矫正的临床知识感知扩散模型|文献速递-深度学习人工智能医疗图像
  • 心路历程-启动流程的概念
  • 如何让你的知识分享更有说服力?
  • RNN如何将文本压缩为256维向量
  • AC内容审计技术
  • 单一职责原则(SRP)深度解析
  • django生成迁移文件,执行生成到数据库
  • CNN-LSTM-Attention、CNN-LSTM、LSTM三模型多变量时序光伏功率预测
  • 开源 GIS 服务器搭建:GeoServer 在 Linux 系统上的部署教程
  • Scikit-learn通关秘籍:从鸢尾花分类到房价预测
  • Vim笔记:缩进
  • 从一个ctf题中学到的多种php disable_functions bypass 姿势
  • 重塑酒店投屏体验:私密投屏技术的革新应用
  • 基于单片机智能点滴输液系统
  • 24.早期目标检测
  • 2025年- H99-Lc207--32.最长有效括号(栈、动态规划)--Java版
  • strlen 函数的使用与模拟实现
  • 云原生俱乐部-mysql知识点归纳(2)
  • Java网络编程:TCP与UDP通信实现及网络编程基础
  • 无人机场景 - 目标检测数据集 - 山林野火烟雾检测数据集下载「包含VOC、COCO、YOLO三种格式」
  • FastAPI 请求详解:全面掌握各种请求类型处理
  • 《基于大数据的全球用水量数据可视化分析系统》用Python+Django开发,为什么导师却推荐用Java+Spring Boot?真相揭秘……
  • 实践项目-1
  • Matplotlib数据可视化实战:Matplotlib图表注释与美化入门
  • LeetCode100-560和为K的子数组