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

jenkins pipeline ssh协议报错处理

一、jenkins版本

jenkins:2.492.3

openssh:OpenSSH_9.8p1, OpenSSL 3.3.1

# grep jenkins /etc/passwd
jenkins:x:996:994:Jenkins Automation Server:/var/lib/jenkins:/bin/false

二、报错

三、处理

步骤1:手动添加目标主机密钥到Jenkins用户# 切换到Jenkins用户(需root权限)
sudo su - jenkins -s /bin/bash # 手动触发SSH连接以记录密钥 
ssh -o StrictHostKeyChecking=no 目标主机IP 
# 输入yes确认密钥(仅首次需要)
exit ## 原理:强制Jenkins用户完成首次SSH交互,生成 known_hosts 文件步骤2:配置SSH密钥对权限# 检查私钥权限 
sudo chmod 600 /var/lib/jenkins/.ssh/id_rsa # 确保.ssh目录权限正确 
sudo chmod 700 /var/lib/jenkins/.ssh 步骤3:验证并配置目标主机SSH服务
# 在目标主机检查SSH配置 
sudo vim /etc/ssh/sshd_config 
# 确保以下参数启用 
PasswordAuthentication yes 
PubkeyAuthentication yes # 重启SSH服务 
sudo systemctl restart sshd 步骤4:配置Jenkins免密sudo权限(可选)# 编辑sudoers文件 
sudo visudo 
# 添加以下内容(允许无需密码执行命令)
jenkins ALL=(ALL) NOPASSWD: ALL 步骤5:Pipeline脚本调试
pipeline {agent any stages {stage('SCP Test') {steps {script {// 显示当前用户和密钥路径 sh 'whoami && ls -l /var/lib/jenkins/.ssh'// 测试SCP连接 sh 'scp -v -i /var/lib/jenkins/.ssh/id_rsa file.txt  user@host:/path'}}}}
}

四、高级排查技巧

五、补充说明

容器化环境:若Jenkins运行在Docker中,需将宿主机SSH目录挂载到容器:

docker run -v /var/lib/jenkins/.ssh:/home/jenkins/.ssh ...

密钥类型兼容性:部分旧系统需使用RSA密钥(非Ed25519),生成时指定:

ssh-keygen -t rsa -b 4096 

相关文章:

  • 【MCP Node.js SDK 全栈进阶指南】初级篇(4):MCP工具开发基础
  • 【MCP Node.js SDK 全栈进阶指南】初级篇(3):MCP资源开发基础
  • JavaScript ?? 运算符详解
  • 宏碁笔记本电脑怎样开启/关闭触摸板
  • 最新项目笔记
  • Qt Creator 创建 Qt Quick Application一些问题
  • C++:STL模板
  • 华为网路设备学习-19 路由策略
  • RS232转Profinet网关开启光谱仪新视界
  • 【Spring Boot】MyBatis多表查询的操作:注解和XML实现SQL语句
  • 1.HTTP协议与RESTful设计
  • 智能指针之设计模式3
  • 如何使用 Spring Boot 实现统一功能处理:从零开始打造高效、可扩展的后台系统
  • 31Calico网络插件的简单使用
  • 常用python爬虫框架介绍
  • 测试第四课---------性能测试工具
  • gbase8s触发器使用
  • 使用 LangChain + Higress + Elasticsearch 构建 RAG 应用
  • Python 获取淘宝买家订单列表(buyer_order_list)接口的详细指南
  • 【C++】新手入门指南(下)
  • 2类药物别乱吃,严重可致肝肾衰竭!多人已中招
  • 5名中国公民在美国交通事故中遇难
  • 张建华评《俄国和法国》|埃莲娜·唐科斯的俄法关系史研究
  • 香港发生车祸致22人受伤,4人伤势严重
  • 证监会:坚决拥护党中央对王建军进行纪律审查和监察调查的决定
  • 媒体:酒店、民宿临时毁约涨价,怎么管?