为什么“连接到服务器”实用程序中的主机密钥验证失败?

ram*_*mbo 6 ssh

我可以ssh从终端使用,但无法从“连接到服务器..”实用程序使用它。它在对话框中显示错误,如下所示:

Cannot display location "sftp://username@IP.IP.IP.IP:PORT/
"Host key verification failed"
Run Code Online (Sandbox Code Playgroud)

为什么这样?

从终端使用以下命令我可以访问服务器:

ubuntu# ssh -p 2222 username@IP.IP.IP.IP

Description:    Ubuntu 10.04.4 LTS
Release:    10.04
Codename:   lucid
Run Code Online (Sandbox Code Playgroud)

为什么主机密钥验证失败?

小智 4

有一个名为known_hosts 的文件,通常位于用户目录中~/.ssh/- 它包含 ssh 和其他服务用于验证您连接到的远程计算机的密钥。如果特定服务器的密钥已更新(例如在操作系统更新期间),则将在该服务器上生成该服务器的新密钥。由于这与您计算机上存储的密钥冲突,ssh 将询问您是否仍然信任该计算机。

第一次连接到机器时,ssh 会询问您是否信任该密钥。如果您这样做,那么该密钥将被复制到该用户的known_hosts 文件中。

查看known_hosts 文件并删除远程计算机的条目。现在,当您连接时,系统应该要求您接受新密钥。通过移动文件,您可能会触发为导入的第一个密钥创建新的known_hosts 文件,并且会丢失您可能已连接到的其他计算机的记录。


小智 2

您还可以使用以下命令仅删除有问题的密钥:

ssh-keygen -f "~/.ssh/known_hosts" -R hostname_or_ip_address
Run Code Online (Sandbox Code Playgroud)