linux ssh登錄設置
環境說明
- 有一臺ubuntu虛擬機(Windows 10自帶的ubuntu)作爲client;
- 同時有三臺獨立的server, node1, node2, node3;
- 分別設置client到三臺服務器的無需手動輸入密碼登錄。
步驟
- 在client:
cd .ssh
ssh-keygen -t rsa #在client本地生成祕鑰和公鑰
可檢查,在當前文件夾下生成了兩個文件:id_rsa
和id_rsa.pub
, 分別爲祕鑰和公鑰。
可以看到公鑰的內容:cat id_rsa.pub
- 將本地生成的公鑰分別傳送到三臺server
- node1
ssh-copy-id -i id_rsa.pub -p 22 username@node1
#此處需要輸入username@node1的登錄密碼
測試: ssh username@node1
若可以成功登錄到node1,說明配置成功。
- node2
ssh-copy-id -i id_rsa.pub -p 22 username@node2
#此處需要輸入username@node2的登錄密碼
測試: ssh username@node2
若可以成功登錄到node2,說明配置成功。
- node3
ssh-copy-id -i id_rsa.pub -p 22 username@node3
#此處需要輸入username@node3的登錄密碼
測試: ssh username@node3
若可以成功登錄到node3,說明配置成功。
進一步說明
(2020/1/14更新)
以上的ssh-copy-id 命令封裝了將公鑰中內容追加到服務器.ssh/authorized_keys文件的部分。
對於沒有ssh-copy-id命令的主機可以通過手動複製的方式來實現。如下所示。
-
假設已在主機生成公鑰id_rsa.pub
-
利用scp命令將id_rsa.pub複製到服務器上
-
在服務器上進行操作:
- 在/home下,進入.ssh文件夾 :
cd .ssh
- 複製剛上傳的id_rsa.pub內容到.ssh/authorized_keys
- 保存
- 在/home下,進入.ssh文件夾 :
-
正常情況下,可以在client上通過ssh免密登錄到服務器。