ssh建立主机间的互信

  1. 所谓的互信,是指主机A信任主机B,主机B也信任主机A。

  2. 主机A信任主机B,那么主机B可以向主机A发起免秘钥验证的上传及下载的请求。主机B的公钥文件id_rsa.pub的内容添加到主机A的授权文件authorized_keys后面,也就是主机B的公钥在主机A有备份。

  3. 主机B信任主机A,那么主机A可以向主机B发起免秘钥验证的上传及下载请求。主机A的公钥文件id_rsa.pub的内容添加到主机B的授权文件authorized_keys后面,也就是主机A的公钥在主机B有备份。


主机的密钥生成:

$ cd ~/.ssh/
$ ssh-keygen -t rsa
授权秘钥文件authorized_keys也放在此目录下,可手动建立.


应用案例:

现在有2台主机A、B,ip地址分别为ipA、ipB,需要将主机A的userA的home目录下所有的log文件拷贝到主机B的userB的/tmp/log目录下,请设计一个免交互的实现过程.

实现思路: 主机目录下所有的log文件,可以通过 find ~ -name "*.log" 查找到,然后将查找的结果作为参数传递给 scp,这样一来,必须从主机A发起备份请求:

find ~ -name "*.log" | xargs -I {} scp -p {} userB@ipB:/tmp/log/

但测试发现,如果有n个log文件需要备份,则需要输入n次主机B的秘钥,此时就需要一个信任机制:主机B信任主机A,即:主机B允许主机A的上传(备份)请求。因此主机B的授权秘钥文件authorized_keys中需要主机A的公钥字符串。

  1. 判定谁信任谁的依据是发起请求的主机是哪个,发起请求的主机需要取得信任之后才可以开始免验证传输数据。

你可能感兴趣的:(ssh建立主机间的互信)