所謂的互信,是指主機(jī)A信任主機(jī)B购啄,主機(jī)B也信任主機(jī)A襟企。
主機(jī)A信任主機(jī)B,那么主機(jī)B可以向主機(jī)A發(fā)起免秘鑰驗(yàn)證的上傳及下載的請(qǐng)求狮含。主機(jī)B的公鑰文件id_rsa.pub的內(nèi)容添加到主機(jī)A的授權(quán)文件authorized_keys后面顽悼,也就是主機(jī)B的公鑰在主機(jī)A有備份。
主機(jī)B信任主機(jī)A几迄,那么主機(jī)A可以向主機(jī)B發(fā)起免秘鑰驗(yàn)證的上傳及下載請(qǐng)求蔚龙。主機(jī)A的公鑰文件id_rsa.pub的內(nèi)容添加到主機(jī)B的授權(quán)文件authorized_keys后面,也就是主機(jī)A的公鑰在主機(jī)B有備份映胁。
主機(jī)的密鑰生成:
$ cd ~/.ssh/
$ ssh-keygen -t rsa
授權(quán)秘鑰文件authorized_keys也放在此目錄下木羹,可手動(dòng)建立.
應(yīng)用案例:
現(xiàn)在有2臺(tái)主機(jī)A、B解孙,ip地址分別為ipA坑填、ipB,需要將主機(jī)A的userA的home目錄下所有的log文件拷貝到主機(jī)B的userB的/tmp/log目錄下妆距,請(qǐng)?jiān)O(shè)計(jì)一個(gè)免交互的實(shí)現(xiàn)過程.
實(shí)現(xiàn)思路: 主機(jī)目錄下所有的log文件穷遂,可以通過 find ~ -name "*.log" 查找到函匕,然后將查找的結(jié)果作為參數(shù)傳遞給 scp娱据,這樣一來,必須從主機(jī)A發(fā)起備份請(qǐng)求:
find ~ -name "*.log" | xargs -I {} scp -p {} userB@ipB:/tmp/log/
但測(cè)試發(fā)現(xiàn)盅惜,如果有n個(gè)log文件需要備份中剩,則需要輸入n次主機(jī)B的秘鑰,此時(shí)就需要一個(gè)信任機(jī)制:主機(jī)B信任主機(jī)A抒寂,即:主機(jī)B允許主機(jī)A的上傳(備份)請(qǐng)求结啼。因此主機(jī)B的授權(quán)秘鑰文件authorized_keys中需要主機(jī)A的公鑰字符串。
- 判定誰信任誰的依據(jù)是發(fā)起請(qǐng)求的主機(jī)是哪個(gè)屈芜,發(fā)起請(qǐng)求的主機(jī)需要取得信任之后才可以開始免驗(yàn)證傳輸數(shù)據(jù)郊愧。