如何在ssh遠端linux伺服器時不需要輸入密碼
目的:
期望A伺服器在對B伺服器執行ssh或者scp等命令的時候不需要輸入密碼
實現方法:
1.通過安裝sshpass服務
2.通過金鑰驗證的方式
操作過程:
一、通過sshpass的方式達到密碼非互動
1.安裝sshpass服務(centeros 7上可直接yum安裝,而centeros 6必須下載檔案編譯安裝)
yum install sshpass
2.使用sshpass命令登陸遠端伺服器
sshpass -p '密碼' ssh [email protected]
sshpass -p '密碼' scp 1.txt
二、通過金鑰認證方式達到免互動免密碼認證
1.通過ssh-keygen命令生成公鑰
ssh-keygen -t rsa
2.在/root/.ssh/目錄下會生成一個'id_isa.pub'的檔案,將其拷貝到目標主機
scp /root/.ssh/id_isa.pub [email protected]:/root
3.將id_isa.pub裡面的內容重定向到目標主機的/root/.ssh/authorized_keys檔案中(如果沒有.ssh目錄和authorized_keys檔案,需要自己手動建立)
cat id_isa.pub >> /root/.ssh/authorized_keys
4.此時再登陸目標主機發現不需要輸入密碼
sshpass方式與公鑰認證對比:
做過這個小實驗就不難發現,sshpass命令中附帶了明文密碼,這時候如果使用者許可權管控不到位、或者在使用ps命令發現sshpass這個程序的時候都可以看到遠端主機的密碼,所以不建議這種方式,極力推薦ssh的金鑰認證。