Host key verification failed
时间: 2023-07-12 11:23:01 浏览: 54
当您通过 SSH 连接到远程主机时,如果提示 "Host key verification failed" 错误,这通常表示您本地计算机存储的该主机的公钥与远程主机上实际的公钥不一致。这可能是由于以下原因导致的:
1. 您首次连接到远程主机,并且未将其公钥添加到您的本地计算机中。
2. 远程主机重新生成了新的密钥,而您的本地计算机仍然存储旧的密钥。
为了解决这个问题,您可以执行以下步骤:
1. 手动删除本地计算机上存储的远程主机公钥。
```
ssh-keygen -R hostname
```
其中 `hostname` 是远程主机的名称或 IP 地址。
2. 连接到远程主机并将其公钥添加到您的本地计算机中。
```
ssh username@hostname
```
然后,按照提示将远程主机的公钥添加到您的本地计算机中。
3. 再次连接到远程主机,这次应该不会出现 "Host key verification failed" 错误。
如果这些步骤不起作用,您可以尝试删除 `known_hosts` 文件,该文件保存了您的本地计算机中所有已知主机的公钥。在 Linux 上,该文件通常位于 `~/.ssh/` 目录中。删除该文件后,再次连接到远程主机时,将提示您接受远程主机的公钥。
相关问题
host key verification failed
这个错误通常是由于 SSH 客户端第一次连接到远程主机时,客户端没有保存远程主机的公钥所致。为了解决这个问题,可以尝试以下几种方法:
1. 手动通过 SSH 连接到远程主机并接受主机公钥,例如:`ssh user@remotehost`,然后输入 `yes` 以接受主机公钥。
2. 手动将远程主机的公钥添加到本地 SSH 客户端的已知主机列表中。可以使用以下命令将主机公钥添加到 `~/.ssh/known_hosts` 文件中:`ssh-keyscan -H remotehost >> ~/.ssh/known_hosts`,其中 `remotehost` 是远程主机的名称或 IP 地址。
3. 如果您无法手动连接到远程主机,可以尝试删除本地 SSH 客户端的已知主机列表中的远程主机公钥,并重新连接到远程主机以接受公钥。可以使用以下命令删除已知主机列表中的公钥:`ssh-keygen -R remotehost`,其中 `remotehost` 是远程主机的名称或 IP 地址。
请注意,在使用以上方法之前,请确保您正在连接到正确的远程主机,并且远程主机的公钥是可信的,以避免安全问题。
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 配置,以确保它已正确配置并正在运行。