【问题标题】:Jenkins master to slave error: Host key verification failedJenkins主从错误:主机密钥验证失败
【发布时间】:2019-07-30 02:51:15
【问题描述】:

我正在对 Jenkins 进行自动化测试。我正在尝试从一台 Linux 机器(主机,与我的 Jenkins 服务器相同的机器)远程运行脚本,并在另一台 Linux 机器(从机)上调用一堆其他脚本。但是我在第一个 ssh 命令时遇到了这个错误

Host key verification failed.

我很确定从主机到从机的无密码连接没有问题,因为我之前使用同一台主机/从机运行过其他测试。

我在我的 master 上手动运行完全相同的命令,它成功返回了预期的结果。我不知道为什么它对自动化测试不起作用。

我想要在这个命令中做的就是检查一个包是否已经安装(我的操作系统是 CentOS 7 用于两台机器)

ssh ${USERNAME}@${IP_ADDR} 'rpm -qa | grep ${MY_PACKAGE}'

在继续执行更多特定于此包的命令之前,我只是在检查包的存在。

【问题讨论】:

    标签: jenkins


    【解决方案1】:
    ssh_opts='-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
    
    ssh $ssh_opts ${USERNAME}@${IP_ADDR} 'rpm -qa | grep ${MY_PACKAGE}'
    

    在你的 shell 脚本中试试这个。它禁用主机的主机密钥验证检查。

    【讨论】:

    • 这条命令是不是在从机端禁用主机密钥验证?
    【解决方案2】:

    最终我发现了它的问题所在。

    当我从两台机器交换 ssh 主机密钥时,我没有使用 root 用户。然而,当测试通过 Jenkins 运行时,它使用“sudo”在从属测试机器上运行目标脚本,这意味着它正在从“known_hosts”文件中为 root 用户读取 ssh 主机密钥,而不是我的那个为测试用户帐户(非root用户帐户)配置! 我为测试用户和 root 用户合并了我的两个“known_hosts”文件,然后问题得到解决,因为现在 Jenkins master 可以通过 root 用户或我的测试用户帐户访问我的从属测试机器。

    【讨论】:

      猜你喜欢
      • 2013-02-16
      • 1970-01-01
      • 2020-12-16
      • 2020-12-27
      • 1970-01-01
      • 2017-09-10
      • 2018-11-13
      • 2020-07-15
      • 2021-12-25
      相关资源
      最近更新 更多