我是 Linux 新手。我有 2 台 Debian Squeeze 主机正在运行。让我们称呼他们为挤压一和挤压二号。登录后挤压一,我运行ssh-keygen
并将生成的公钥添加到我的授权密钥文件中:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
puttygen
我还将Windows 桌面生成的公钥添加到同一个密钥文件中。
我可以ssh
从我的腻子中正常进入,而无需询问我的密码。但是,如果我输入以下任一命令:
ssh localhost
ssh One
我收到以下错误。
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.
如果我去挤压二号,并ssh
尝试挤压一,我收到同样的消息。在挤压二号,有一个~/.ssh/known_host
文件,我知道它不是我自己创建的。但是,我known_hosts
在上没有看到相同的文件挤压一。
在挤压二号,我可以ssh
毫无问题地访问本地主机及其本身。
我究竟做错了什么?
答案1
根据您正在执行的操作,最好不要在~/.ssh/known_hosts
.这可以通过NoHostAuthenticationForLocalhost
选项来完成,可以在命令行上使用-o NoHostAuthenticationForLocalhost
,也可以插入NoHostAuthenticationForLocalhost yes
~/.ssh/config 中。
答案2
主机密钥标识机器。您的authorized_keys 文件中的密钥可以识别您的身份。您应该始终期望为您连接的每台计算机提示一次接受主机密钥。
如果系统再次提示您输入已接受的计算机,则可能表明存在像重新安装 SSH 软件包一样无害的情况,或者像中间人攻击一样险恶的情况。