現在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文件 就可以實現無密碼登錄