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

运维技术教程之Jenkins上的known_hosts文件

在Jenkins中,known_hosts文件用于存储已验证的远程节点主机密钥,避免每次连接时重复验证。以下是基于不同场景的解决方案:


1. 创建并配置 known_hosts 文件

若Jenkins提示 No Known Hosts file 或找不到文件,需手动创建并配置:

  • 创建目录及文件
    sudo mkdir -p /var/lib/jenkins/.ssh/  # 根据实际JENKINS_HOME路径调整
    sudo touch /var/lib/jenkins/.ssh/known_hosts
    sudo chown jenkins:jenkins /var/lib/jenkins/.ssh/known_hosts
    sudo chmod 600 /var/lib/jenkins/.ssh/known_hosts
    
  • 添加目标节点的公钥
    1. 以Jenkins用户身份执行:
      ssh <节点用户名>@<节点IP>  # 首次连接会提示接受主机密钥
      
    2. 将本地用户~/.ssh/known_hosts中对应的节点公钥行复制到Jenkins的known_hosts文件中[3][5]。

2. 调整主机密钥验证策略

若不想手动管理known_hosts,可修改Jenkins的主机密钥验证策略

  • 进入节点配置页面
    • 启动方式选择 Launch agent agents via SSH
    • Host Key Verification Strategy 改为 Manually trusted key verification strategy[3][4]。
    • 保存后,Jenkins会跳过自动校验,但需确保目标节点已正确配置SSH免密登录。

3. 配置SSH免密登录

确保Jenkins用户与目标节点之间的SSH免密登录已配置:

  1. 生成SSH密钥对(若未生成):
    sudo -u jenkins ssh-keygen -t rsa -b 4096  # 以Jenkins用户生成
    
  2. 部署公钥到目标节点
    sudo -u jenkins ssh <节点用户名>@<节点IP> 'cat >> ~/.ssh/authorized_keys' < /var/lib/jenkins/.ssh/id_rsa.pub
    
  3. 设置权限
    sudo -u jenkins chmod 700 /var/lib/jenkins/.ssh/authorized_keys
    

4. 其他注意事项

  • 路径一致性:Jenkins的.ssh目录通常位于/var/lib/jenkins//var/jenkins_home/,需根据实际环境确认[1][3]。
  • 权限检查:确保Jenkins用户对.ssh目录及文件有读写权限(chmod 600 known_hostschown jenkins:jenkins)。
  • 重启Jenkins:配置变更后,需重启Jenkins服务以生效:
    sudo systemctl restart jenkins
    

总结

  • 优先推荐:手动创建known_hosts并配置免密登录,确保安全性和稳定性。
  • 快速绕过:临时将验证策略改为Manually trusted key verification,但长期需补全known_hosts以避免安全风险[3][5]。

通过以上步骤,可解决Jenkins因known_hosts缺失或校验失败导致的连接问题。


文章转载自:
http://adulterator.elldm.cn
http://abiotic.elldm.cn
http://absurdity.elldm.cn
http://abridge.elldm.cn
http://anastasia.elldm.cn
http://adjacent.elldm.cn
http://choreoid.elldm.cn
http://chrysler.elldm.cn
http://apennines.elldm.cn
http://amidships.elldm.cn
http://amoco.elldm.cn
http://bromberg.elldm.cn
http://associated.elldm.cn
http://argentina.elldm.cn
http://cathedra.elldm.cn
http://axial.elldm.cn
http://biotic.elldm.cn
http://archenteron.elldm.cn
http://chiz.elldm.cn
http://bata.elldm.cn
http://bibliophile.elldm.cn
http://assam.elldm.cn
http://careerist.elldm.cn
http://advent.elldm.cn
http://allergenic.elldm.cn
http://all.elldm.cn
http://autocade.elldm.cn
http://adenovirus.elldm.cn
http://barkhausen.elldm.cn
http://almandine.elldm.cn
http://www.dtcms.com/a/281177.html

相关文章:

  • 高频高密度趋势下磁芯材料评价指标探讨
  • UVM(1)—配置环境
  • 算法学习day16----Python数据结构--模拟队列
  • 传统三层网络架构和现代数据中心网络架构(如思科 ACI 的 Spine-Leaf 架构)的对比和分析(Grok3 回答)
  • Mac电脑上无需卸载即可切换使用多个EasyConnect客户端的解决方案
  • Docker安装升级redis,并设置持久化
  • 使用 sudo iftop -i 分析服务器带宽使用情况
  • 一文读懂语义解析技术:从规则到神经网络的演进与挑战
  • PPP 链路及 MP 捆绑与 CHAP 验证实验
  • 从零开始学前端html篇3
  • Missing classes detected while running R8解决
  • 创客匠人:从 IP 到变现,定位是构建价值闭环的核心
  • Elasticsearch的深度翻页问题
  • Git本地操作完全指南:从入门到精通
  • 创客匠人:创始人 IP 打造,知识变现的时代必然
  • Elasticsearch 9.x 搜索执行流程(源码解读)
  • 深度学习中的激活函数:从原理到 PyTorch 实战
  • CentOS服务器安装Supervisor使队列可以在后台运行
  • 【用unity实现100个游戏之33】用Unity手搓一个类【红色警戒|魔兽争霸|帝国时代|星际争霸】3D RTS游戏(附源码)
  • vue openlayer创建地图弹框overlay
  • 【html常见页面布局】
  • [ROS 系列学习教程] ROS动作通讯(Action):通信模型、Hello World与拓展
  • k8s环境使用Operator部署Seaweedfs集群(下)
  • 【鸿蒙HarmonyOS】鸿蒙app开发入门到实战教程(三):实现一个音乐列表的页面
  • Flutter Socket 连接方案分析与适用场景
  • RestTemplate 实现后端 HTTP 调用详解
  • spring-ai-alibaba 多模态之音频
  • 前端Vue.js面试题(4)
  • 超详细 anji-captcha滑块验证springboot+uniapp微信小程序前后端组合
  • 如何定义一个只能在堆上或栈上生成对象的类