无法通过 SSH 连接到本地主机 - 主机密钥验证失败

Baj*_*rat 4 ssh

我是 Linux 新手。我有 2 台 Debian Squeeze 主机正在运行。我们称它们为SqueezeOneSqueezeTwo。登录SqueezeOne 后,我运行ssh-keygen并将生成的公钥添加到我的授权密钥文件中:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Run Code Online (Sandbox Code Playgroud)

我还将puttygen从我的 Windows 桌面生成的公钥添加到同一个密钥文件中。

我可以ssh从我的腻子中正常进入,而不会被要求输入密码。但是,如果我输入以下任一命令:

ssh localhost 
ssh One
Run Code Online (Sandbox Code Playgroud)

我收到以下错误。

The authenticity of host 'localhost (127.0.0.1)' can't be established.
RSA key fingerprint is 75:56:33:22:c3:da:43:72:11:33:ec:50:f4:d0:dd:c7.
Are you sure you want to continue connecting (yes/no)?
Host key verification failed.
Run Code Online (Sandbox Code Playgroud)

如果我转到SqueezeTwo并尝试ssh转到SqueezeOne,我会收到相同的消息。在SqueezeTwo 上,有一个~/.ssh/known_host文件,我知道它不是我自己创建的。但是,我没有known_hostsSqueezeOne上看到相同的文件。

SqueezeTwo 上,我可以毫无问题地ssh访问 localhost 和它本身。

我究竟做错了什么?

Tho*_*hor 8

根据您在做什么,最好不要在~/.ssh/known_hosts. 这可以通过NoHostAuthenticationForLocalhost选项来完成,在命令行上使用-o NoHostAuthenticationForLocalhost或插入NoHostAuthenticationForLocalhost yes~/.ssh/config。


小智 2

主机密钥标识机器。您的authorized_keys 文件中的密钥可以识别您的身份。您应该始终期望为您连接的每台计算机提示一次接受主机密钥。

如果系统再次提示您输入已接受的计算机,则可能表明存在像重新安装 SSH 软件包一样无害的情况,或者像中间人攻击一样险恶的情况。