一、實現原理
使用一種被稱為"公私密金鑰"認證的方式來進行ssh登入。"公私密金鑰"認證方式簡單的解釋是:
首先在用戶端上建立一對公私密金鑰(公開金鑰檔案:~/.ssh/id_rsa.pub;私密金鑰檔案:~/.ssh/id_rsa),然後把公開金鑰放到伺服器上(~/.ssh/authorized_keys),自己保留好私密金鑰。當ssh登入時,ssh程式會發送私密金鑰去和伺服器上的公開金鑰做匹配。如果匹配成功就可以登入了。
二、實驗環境
A機:TS-DEV/10.0.0.163
B機:CS-DEV/10.0.0.188
三、Linux/Unix雙機建立信任
3.1 在A機產生認證
在A機root使用者下執行ssh-keygen命令,在需要輸入的地方,直接斷行符號,產生建立安全信任關係的認證。
# ssh-keygen -t rsa
注意:在程式提示輸入passphrase時直接輸入斷行符號,表示無認證密碼。
上述命令將產生私密金鑰認證id_rsa和密鑰憑證id_rsa.pub,存放在使用者家目錄的.ssh子目錄中。
3.2 查看~/.ssh產生密鑰的檔案
# cd ~/.ssh
# ll
3.3 A對B建立信任關係
將密鑰憑證id_rsa.pub複製到機器B的root家目錄的.ssh子目錄中,同時將檔案名稱更換為authorized_keys,此時需要輸入B機的root使用者密碼(還未建立信任關係)。建立了用戶端到伺服器端的信任關係後,用戶端就可以不用再輸入密碼,就可以從伺服器端拷貝資料了。
# scp -r id_rsa.pub 10.0.0.188:/root/.ssh/authorized_keys
3.4 B對A建立信任關係
在B機上執行同樣的操作,建立B對A的信任關係。
# ssh-keygen -t rsa
# cd ~/.ssh/
# ll
# scp -r id_rsa.pub 10.0.0.163:/root/.ssh/authorized_keys
四、測試
在A機上:
# scp -r 10201_database_linux_x86_64.cpio 10.0.0.188:/tmp/david/
在B機上:
雙機信任關係已經建立!
註:如果想讓B,C同時可以scp不輸入密碼,傳輸A中的資料;
則要把B、C的公開金鑰都給 A;
操作步驟:把兩機器的id_rsa.pub中的資料都拷貝到A的/root/.ssh/authorized_keys檔案中,一行表示一條。