我可以通过 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