Jenkins服务器配置密钥对

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

    生成 SSH 密钥对

    ssh-keygen -t rsa -b 2048 -f ~/.ssh/id_rsa -N ""

    查看公钥内容

    cat ~/.ssh/id_rsa.pub

  2. 将显示的公钥内容复制,然后在目标服务器上执行

    在目标服务器上执行

    mkdir -p /root/.ssh
    chmod 700 /root/.ssh
    echo "这里粘贴Jenkins服务器上生成的公钥" >> /root/.ssh/authorized_keys
    chmod 600 /root/.ssh/authorized_keys

  3. 在目标服务器上检查 SSH 配置

    在目标服务器上执行

    cat /etc/ssh/sshd_config | grep -E "PubkeyAuthentication|PasswordAuthentication|PermitRootLogin"

    如果需要修改配置

    vi /etc/ssh/sshd_config

    确保以下设置正确:

    PubkeyAuthentication yes
    PasswordAuthentication yes
    PermitRootLogin yes

    重启SSH服务

    systemctl restart sshd

  4. 配置完成后,在 Jenkins 服务器上测试连接

    在Jenkins服务器上执行

    ssh -v root@10.53.3.69

  5. 如果你远程属性PasswordAuthentication不小心设置成false,以下是解决方案

    pipeline {
    agent any

    复制代码
     environment {
         TARGET_SERVER = 'ip'
         JENKINS_HOME = '/var/lib/jenkins'
     }
    
     stages {
         stage('Modify SSH Config') {
             steps {
                 script {
                     try {
                         // 修改 SSH 配置,启用密码认证
                         sh '''
                             echo "=== 修改 SSH 配置 ==="
                             ssh -F ${JENKINS_HOME}/.ssh/config ${TARGET_SERVER} "sudo sed -i 's/^PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config"
    
                             echo "=== 重启 SSH 服务 ==="
                             ssh -F ${JENKINS_HOME}/.ssh/config ${TARGET_SERVER} "sudo systemctl restart sshd"
    
                             echo "=== 验证配置 ==="
                             ssh -F ${JENKINS_HOME}/.ssh/config ${TARGET_SERVER} "cat /etc/ssh/sshd_config | grep PasswordAuthentication"
                         '''
                     } catch (Exception e) {
                         echo "Error: ${e.message}"
                         currentBuild.result = 'FAILURE'
                     }
                 }
             }
         }
     }

    }

相关推荐
jerryinwuhan5 小时前
《系统部署与运维》开篇 课程介绍
运维
我是谁??7 小时前
Ubuntu22.04更换清华源
linux·运维·服务器
圣殿骑士-Khtangc8 小时前
Go字符串高效拼接性能对比与底层原理分析
服务器·前端·golang
Shell运维手记8 小时前
Linux 常用基础命令学习笔记
linux·运维·笔记·学习·算法·github
朴马丁8 小时前
国际与国产PLM在精细化工赛道的布局:2026年主要厂商技术特色
大数据·运维·人工智能·流程行业plm·化工新材料
这个DBA有点耶9 小时前
数据库一体机架构演进:从硬件堆叠到软硬深度耦合
服务器·网络·数据库·硬件架构·运维开发·database·数据库架构
Elastic 中国社区官方博客9 小时前
Elasticsearch:使用 AI Agent 来创建 workflow
大数据·运维·人工智能·elasticsearch·搜索引擎·自动化·全文检索
测试运维日常笔记10 小时前
Linux系统安装配置TigerVNC服务器完整指南
linux·运维·服务器
像风一样自由202010 小时前
加强版VScode结合remote-ssh远程连接服务器开发指南
服务器·vscode·ssh
喜欢的名字被抢了11 小时前
程序出问题怎么查,以及如何让它不掉线
java·运维·数据库