大家好,我在做多个 linux 互相通过 ssh 协议登录,并且做免 ssh 认证的时候,有个地方不理解,待我详细说来:
目标:
我有两台 opensuse,分别是 192.168.56.101 和 192.168.56.102,我希望两台机器能过通过 ssh 互相登录对方,并且登录的时候不需要输入口令。
步骤:
1、我在这两台机器上分别执行 ssh-keygen -t rsa 命令,然后分别在两台 linux 上出现.ssh 文件夹。
.ssh 文件夹中的内容是:id_rsa、id_rsa.pub、know_hosts 这三个文件。
2、按照网上的一个教程,我在.ssh 文件夹下新增 authorized_keys 文件,并将对方机器的公钥文件 id_rsa.pub 中的内容拷贝到 authorized_keys 这个文件中。
3、之后两台机器就可以互相通过 ssh 协议登录并且不需要输入密码,
例如:在 192.168.56.101 机器上输入 ssh 192.168.56.102,直接登录了 102 机器,而不需要输入密码。
但我遇到的问题是,会抛出如下异常:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
e3:89:e4:b5:5e:fb:33:e8:ca:d5:92:9f:ba:2d:1a:04.
Please contact your system administrator.
Add correct host key in /home/smg/.ssh/known_hosts to get rid of this message.
Offending key in /home/smg/.ssh/known_hosts:1
RSA host key for 10.38.223.250 has changed and you have requested strict checking.
Host key verification failed.
SSH 登录失败:Host key verification failed 由于公钥不一样了,所以无法登录,提示信息是 KEY 验证失败。
解决方法是: 在 /root/.ssh/known_hosts 文件里面将原来的公钥信息删除即可。
** 以上都是描述,问题现在开始 **
既然 know_hosts 文件才是存放的访问过的机器的公钥,
那么按照我看的教程,要在.ssh 文件夹下新增 authorized_keys 文件,并将对方的公钥拷贝到 authorized_keys 中,之后,就能免密码的登录对方机器,
而 know_hosts 文件里面本来就有对方公钥,为什么还要在增加一个 authorized_keys 文件??
这两个文件之间是什么关系呢????
求各位帮忙。