SSH 连接问题,出现“主机密钥验证失败...”错误

SSH 连接问题,出现“主机密钥验证失败...”错误

我可以通过 SSH 连接到局域网中的另一台 Ubuntu 机器。在两台电脑上,我都安装了openssh-服务器 但是从另一台 Ubuntu 计算机我无法通过 SSH 连接到我的电脑,并且出现此错误:

主机密钥验证失败...

答案1

“主机密钥验证失败”意味着主持人远程主机的密钥已更改。

SSH 将远程主机的主机密钥存储在 中~/.ssh/known_hosts。您可以手动编辑该文本文件并删除旧密钥(您可以在错误消息中看到行号),或者使用

ssh-keygen -R hostname

手册页

-R hostname
从 known_hosts 文件中删除所有属于 hostname 的键。此选项对于删除散列主机很有用。

(这是我从回答中学到的 是否可以从 SSH 的 known_hosts 文件中删除特定的主机密钥?)。

答案2

如果您在某些远程/脚本情况下运行,而无法交互访问提示添加主机键,请按如下方式解决:

$ ssh -o StrictHostKeyChecking=no [email protected] uptime

警告:将“something.example.com,10.11.12.13”(RSA)永久添加到已知主机列表中。

答案3

也许您只需要在 ssh 确认要继续连接时输入“yes”即可。

如下所示:

The authenticity of host 'xxx' can't be established.
ECDSA key fingerprint is yyy.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'xxx' (ECDSA) to the list of known hosts.
Enter passphrase for key '/Users/ysy/.ssh/id_rsa':

然后输入您的密码。

请注意“您确定要继续连接(是/否)吗?是的“。必须输入“yes”,而不是“enter”。

答案4

您必须/home/user/.ssh/known_hosts通过在目标上运行以下命令将目标主机的 rsa 密钥放入源主机中

ssh-keyscan -t rsa @targethost

相关内容