Jenkins主从错误:主机密钥验证失败

Jenkins主从错误:主机密钥验证失败,jenkins,Jenkins,我正在给詹金斯做一个自动化测试。我试图从一台Linux机器(主机器,与我的Jenkins服务器相同的机器)远程运行一个脚本,并在另一台Linux机器(从机器)上调用一组其他脚本。但是,我在第一个ssh命令中遇到了这个错误 Host key verification failed. 我非常确定从主设备到从设备的无密码连接没有问题,因为我以前使用同一台主/从设备运行过其他测试 我在我的主机上手动运行了完全相同的命令,它成功地返回了预期的结果。我不知道为什么它对自动化测试不起作用 我想在这个命令中做

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

Host key verification failed.
我非常确定从主设备到从设备的无密码连接没有问题,因为我以前使用同一台主/从设备运行过其他测试

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

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

我只是检查包的存在性,然后再继续执行更多特定于此包的命令

ssh_opts='-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'

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

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

最终我发现它出了什么问题

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

此命令是否禁用从属机端的主机密钥验证?
ssh_opts='-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'

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