如何在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 root@192.168.0.1

      sshpass -p '密碼' scp 1.txt root@192.168.0.1:/root

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

    1.通過ssh-keygen命令生成公鑰

      ssh-keygen -t rsa

    2.在/root/.ssh/目錄下會生成一個'id_isa.pub'的文件,將其拷貝到目標主機

      scp /root/.ssh/id_isa.pub root@192.168.0.1:/root

      或者直接使用ssh-copy-id命令去復制公鑰自動寫入到authorized_keys文件中,這樣就不需要接下來的手動復制公鑰操作了

        ssh-copy-id -i /root/.ssh/id_isa.pub root@192.168.0.1

    3.將id_isa.pub里面的內容重定向到目標主機的/root/.ssh/authorized_keys文件中(如果沒有.ssh目錄和authorized_keys文件,需要自己手動創建)

      cat id_isa.pub >> /root/.ssh/authorized_keys

      注意:authorized_keys權限一定要為600

    4.此時再登陸目標主機發現不需要輸入密碼

sshpass方式與公鑰認證對比:

  做過這個小實驗就不難發現,sshpass命令中附帶了明文密碼,這時候如果用戶權限管控不到位、或者在使用ps命令發現sshpass這個進程的時候都可以看到遠程主機的密碼,所以不建議這種方式,極力推薦ssh的密鑰認證。

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM