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

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


1. 创建并配置 known_hosts 文件

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

  • 创建目录及文件

    bash 复制代码
    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用户身份执行:

      bash 复制代码
      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密钥对 (若未生成):

    bash 复制代码
    sudo -u jenkins ssh-keygen -t rsa -b 4096  # 以Jenkins用户生成
  2. 部署公钥到目标节点

    bash 复制代码
    sudo -u jenkins ssh <节点用户名>@<节点IP> 'cat >> ~/.ssh/authorized_keys' < /var/lib/jenkins/.ssh/id_rsa.pub
  3. 设置权限

    bash 复制代码
    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服务以生效:

    bash 复制代码
    sudo systemctl restart jenkins

总结

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

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

相关推荐
笨鸟要努力1 小时前
Ubuntu 全盘备份
linux·运维·ubuntu
ChironW1 小时前
Ubuntu 22.04 离线环境下完整安装 Anaconda、CUDA 12.1、NVIDIA 驱动及 cuDNN 8.9.3 教程
linux·运维·人工智能·深度学习·yolo·ubuntu
典学长编程2 小时前
JavaWeb从入门到精通!第二天!(Servlet)
数据仓库·servlet·javaweb
池以遇2 小时前
云原生高级——nginx
运维·nginx·云原生
你无法关注此用户2 小时前
CentOS7搭建安全FTP服务器指南
运维·服务器
TG_yunshuguoji2 小时前
阿里云国际DDoS高防:添加网站配置指南
运维·后端·阿里云
小白的代码日记3 小时前
Linux常用指令
linux·运维·服务器
维尔切4 小时前
Linux中Https配置与私有CA部署指南
linux·运维·https
果子⌂5 小时前
云原生环境 Prometheus 企业级监控实战
linux·运维·服务器·kubernetes·云计算·prometheus
探云抛雾؁ۣۖ6 小时前
云计算---k8s运维~创建pod与pod的安全策略
运维·kubernetes·云计算