一、實(shí)現(xiàn)原理
使用一種被稱為"公私鑰"認(rèn)證的方式來進(jìn)行ssh登錄。"公私鑰"認(rèn)證方式簡單的解釋是:
首先在客戶端上創(chuàng)建一對(duì)公私鑰(公鑰文件:~/.ssh/id_rsa.pub;私鑰文件:~/.ssh/id_rsa),然后把公鑰放到服務(wù)器上(~/.ssh/authorized_keys),自己保留好私鑰。當(dāng)ssh登錄時(shí),ssh程序會(huì)發(fā)送私鑰去和服務(wù)器上的公鑰做匹配。如果匹配成功就可以登錄了。
二、實(shí)驗(yàn)環(huán)境
A機(jī):TS-DEV/10.0.0.163
B機(jī):CS-DEV/10.0.0.188
三、Linux/Unix雙機(jī)建立信任
3.1 在A機(jī)生成證書
在A機(jī)root用戶下執(zhí)行ssh-keygen命令,在需要輸入的地方,直接回車,生成建立安全信任關(guān)系的證書。
# ssh-keygen -t rsa
注意:在程序提示輸入passphrase時(shí)直接輸入回車,表示無證書密碼。
上述命令將生成私鑰證書id_rsa和公鑰證書id_rsa.pub,存放在用戶家目錄的.ssh子目錄中。
3.2 查看~/.ssh生成密鑰的文件
# cd ~/.ssh
# ll
3.3 A對(duì)B建立信任關(guān)系
將公鑰證書id_rsa.pub復(fù)制到機(jī)器B的root家目錄的.ssh子目錄中,同時(shí)將文件名更換為authorized_keys,此時(shí)需要輸入B機(jī)的root用戶密碼(還未建立信任關(guān)系)。建立了客戶端到服務(wù)器端的信任關(guān)系后,客戶端就可以不用再輸入密碼,就可以從服務(wù)器端拷貝數(shù)據(jù)了。
# scp -r id_rsa.pub 10.0.0.188:/root/.ssh/authorized_keys
3.4 B對(duì)A建立信任關(guān)系
在B機(jī)上執(zhí)行同樣的操作,建立B對(duì)A的信任關(guān)系。
# ssh-keygen -t rsa
# cd ~/.ssh/
# ll
# scp -r id_rsa.pub 10.0.0.163:/root/.ssh/authorized_keys
如果想讓B,C同時(shí)可以scp不輸入密碼,傳輸A中的數(shù)據(jù);
則要把B、C的公鑰都給 A;
操作步驟:把兩機(jī)器的id_rsa.pub中的數(shù)據(jù)都拷貝到A的/root/.ssh/authorized_keys文件中,一行表示一條;
A: scp -r id_rsa.pub 10.0.0.163:/root/.ssh/authorized_keys
B: scp -r id_rsa.pub 10.0.0.188:/root/.ssh/authorized_keys
測試 ssh root@10.0.0.188 'hostname' /// ssh root@10.0.0.163 'hostname'
如果連接反應(yīng)慢,請(qǐng)修改以下兩參數(shù)
/etc/ssh/sshd_config
GSSAPIAuthentication no
UseDNS no
然后重啟service sshd restart