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

运维技术教程之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://www.xdnf.cn/news/15448.html

相关文章:

  • 渲染设计图的空间革命:可视化技术如何重塑设计决策
  • Keepalived双机热备概述
  • 2025华为ODB卷-IPv4地址转换成整数三语言题解
  • DOM入门知识
  • 回顾一下Docker的基本操作
  • 简单易懂,操作系统的内存管理机制是如何实现的
  • 「Java题库」循环结构(理论+操作)
  • 博客项目 laravel vue mysql 第六章 文章功能
  • 手写签名提取工具
  • 生成requirements.txt文件
  • Web3.0 学习方案
  • Docker安装升级redis,并设置持久化
  • 4.增-demo
  • Datawhale AI夏令营 机器学习2.1
  • python学智能算法(二十)|SVM基础概念-感知机算法及代码
  • Gitlab跑CICD的时候,maven镜像和pom.xml使用的maven版本冲突导致没办法build成功的解决方法
  • mac上的app如何自动分类
  • 图灵在二战期间是如何破译德国军用密码的?
  • 20250715使用荣品RD-RK3588开发板在Android13下接入USB3.0接口的红外相机
  • 第八章,应用题
  • Python 字典 (Dictionary) 详解
  • linux系统------HAProxy 配置
  • Isaac Sim仿真赋能机器人工作流,推动具身智能在机器人领域研究
  • 弗兰肯斯坦式的人工智能与GTM策略的崩溃
  • 【Qt】 设计模式
  • 云蝠智能赋能呼入场景——重构企业电话服务
  • 可下载或通过爬虫获取疾病相关数据的网站及平台,涵盖临床数据、基因关联、药品信息等方向,并附注数据特点与获取方式:(不公开)
  • Process Lasso:提升电脑性能的得力助手
  • (3)从零开发 Chrome 插件:网页图片的批量下载
  • 辨析git reset三种模式以及和git revert的区别:回退到指定版本和撤销指定版本的操作