linux ssh免密碼登錄其他主機

現在A主機要通過ssh連接到B主機,需要在A主機上生成一個ssh公鑰,然後寫入到B主機的authorized_keys文件即可(默認主機用戶都爲root)。

1 在root賬戶下生成公鑰 
ssh-keygen


2 將生成的公鑰先寫入A主機的authorized_keys文件 
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

3 將A主機下的authorized_keys發送到B主機的 root賬戶的 ~/.ssh/ 目錄下 
這時還沒設置免密碼登錄,所以發送時需要輸入B主機root賬戶的密碼,我用的虛擬機裝完系統後還沒設置ubuntu的root賬戶初始密碼,所以需要先設置一下。

  • (1) 在B主機 輸入 sudo passwd ,之後輸入要設置的密碼
  • (2) 之後A主機還是不能通過ssh輸入密碼的方式連接到B主機的root賬戶,因爲ssh默認不能連接到root賬戶,需要更改一下B主機ssh的配置,修改 /etc/ssh/sshd_config 文件。 
    使用vi或gedit打開後,找到 PermitRootLogin prohibit-password ,這裏默認的是禁止密碼登錄(即禁止登錄?) ,其修改爲yes,即 PermitRootLogin yes ,然後執行service sshd restart重啓ssh服務 。 
    修改完成後,重啓B主機的ssh服務。之後測試一下,A主機能否連接到B主機,ssh root@ip,然後輸入密碼,發現終於可以連上了。

  • (3) 將A主機中的公鑰,發送到B主機,先在B主機的root賬戶下執行 
    ssh-keygen ,創建一個 .ssh 目錄 
    之後在A主機的root賬戶下執行 
    scp ~/.ssh/authorized_keys root@ip:~/.ssh/ 
    注意這裏使用scp命令發送文件到目錄需要先創建一個目錄,或者將A主機的authorized_keys直接發送到 B主機的~/.ssh/authorized_keys 文件中 
    之後修改B主機接受到的authorized_keys的權限,在B主機中執行 
    chmod 600 ~/.ssh/authorized_keys

    到這終於實現了使用ssh無密碼訪問root賬戶。

    注:若用戶不是root用戶 則不需要修改sshd_config文件 就可以實現無密碼登錄

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章