1. 程式人生 > >如何在ssh遠端linux伺服器時不需要輸入密碼

如何在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

[email protected]:/root

  二、通過金鑰認證方式達到免互動免密碼認證

    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的金鑰認證。