我可以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)