jenkins 调用shell脚本执行ssh提示host key verification failed
时间: 2023-09-07 20:01:52 浏览: 182
在使用Jenkins调用Shell脚本执行SSH时,出现"host key verification failed"错误是因为SSH无法验证远程主机的密钥。这可能是由以下原因导致的:
1. 第一次连接:当第一次使用SSH连接到远程主机时,主机的密钥会被保存在~/.ssh/known_hosts文件中。如果主机的密钥发生了变化,就会导致验证失败。
解决方法:打开Jenkins所在服务器的终端,用ssh命令手动连接到该远程主机,确认是否出现了密钥变化的提示信息。如果确认变化是合理的,可以删除~/.ssh/known_hosts文件中对应的主机密钥,然后重新执行Jenkins任务。
2. 未正确配对:如果远程主机使用了公钥/私钥对进行连接验证,而Jenkins任务在使用SSH时没有正确配置公钥/私钥对,也会导致验证失败。
解决方法:检查Jenkins任务中SSH配置的密钥路径是否正确,并确保公钥已经添加到远程主机的~/.ssh/authorized_keys文件中。
3. hosts文件设置不正确:如果在远程主机的/etc/hosts文件中设置了不正确的主机名,会导致验证失败。
解决方法:在远程主机上检查/etc/hosts文件,确保主机名和IP地址的对应关系正确。
综上所述,解决"host key verification failed"错误的方法包括删除已知主机密钥、正确配置公钥/私钥对和检查/etc/hosts文件设置等。根据具体情况进行排查和解决,可以消除该错误并使Jenkins任务能够顺利执行SSH操作。
相关问题
本地执行远程shell脚本正常,Jenkins自动执行报 Host key verification failed. scp: Connection closed
这个问题通常是因为Jenkins执行的用户没有远程主机的SSH密钥,或者SSH密钥不在正确的位置。解决方法可以有以下几个步骤:
1. 在Jenkins执行的机器上,以Jenkins执行用户的身份登录到远程主机,并手动执行一次ssh连接到远程主机,以便在本地机器上生成远程主机的SSH密钥。
2. 将生成的SSH密钥添加到远程主机的authorized_keys文件中。你可以通过执行以下命令来添加:
ssh-copy-id -i ~/.ssh/id_rsa.pub remote_username@remote_host
其中,remote_username是远程主机的用户名,remote_host是远程主机的IP地址或者域名。
3. 确保Jenkins执行用户的SSH密钥位于正确的位置。你可以通过在Jenkins执行用户的home目录下创建.ssh目录,并将id_rsa和id_rsa.pub文件复制到该目录下来解决这个问题。
如果以上方法均无法解决问题,你可以尝试在Jenkins构建中添加一个SSH Agent插件,并将密钥添加到该插件中来解决该问题。
jenkins Host key verification failed
当您在 Jenkins 中使用 SSH 插件时,如果提示 "Host key verification failed" 错误,这通常表示 Jenkins 服务器无法验证远程主机的公钥。这可能是由于以下原因导致的:
1. 您首次连接到远程主机,并且未将其公钥添加到 Jenkins 服务器中。
2. 远程主机重新生成了新的密钥,而 Jenkins 服务器仍然存储旧的密钥。
为了解决这个问题,您可以执行以下步骤:
1. 在 Jenkins 中安装 SSH 插件并配置 SSH 环境。
2. 在 Jenkins 的控制台中,转到 "Credentials" 页面,并创建一个新的 SSH 凭据。
3. 在 Jenkins 中创建一个新的 "SSH remote host" 构建步骤,并使用您在步骤 2 中创建的 SSH 凭据连接到远程主机。
4. 如果您仍然遇到 "Host key verification failed" 错误,请在 Jenkins 服务器上手动添加远程主机的公钥。
```
ssh-keyscan hostname >> ~/.ssh/known_hosts
```
其中 `hostname` 是远程主机的名称或 IP 地址。
5. 再次运行 Jenkins 构建,这次应该不会出现 "Host key verification failed" 错误。
如果这些步骤不起作用,您可能需要检查远程主机的 SSH 配置,以确保它已正确配置并正在运行。
阅读全文