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
,然後輸入密碼,發現終於可以連上了。 -
(3) 將A主機中的公鑰,傳送到B主機,先在B主機的root賬戶下執行
ssh-keygen
,建立一個 .ssh 目錄
之後在A主機的root賬戶下執行scp ~/.ssh/authorized_keys [email protected]:~/.ssh/
注意這裡使用scp命令傳送檔案到目錄需要先建立一個目錄,或者將A主機的authorized_keys直接傳送到 B主機的~/.ssh/authorized_keys
檔案中
之後修改B主機接受到的authorized_keys的許可權,在B主機中執行chmod 600 ~/.ssh/authorized_keys
到這終於實現了使用ssh無密碼訪問root賬戶。
注:若使用者不是root使用者 則不需要修改sshd_config檔案 就可以實現無密碼登入