筆者習慣替每一個主機產生一個沒有密碼的金鑰(不然要使用時還是需要輸入密碼),和其他金鑰分開(例如 github 的金鑰還是需要輸入密碼),
然後設定 SSH 登入設定檔,這樣連線到特定主機時就可以自動套用該金鑰,達成免密碼登入了!
產生 ssh 金鑰,指定名稱為 id_ed25519_server_001 ,email 為 a@ruyut.com (可以省略)
要輸入兩次密碼,都是直接按下 Enter 跳過
到 ~/.ssh 資料夾下面就會看到剛剛建立的金鑰了
使用 ssh-copy-id 指令直接把公鑰加入至目標主機的 ~/.ssh/config 中,需要把 ruyut@172.16.160.128 替換為自己的主機登入資訊:
現在已經可以免密碼登入了,只是每次都要指定金鑰很麻煩,可以手動編輯 ssh 連線設定檔,可以自訂連線的別名,也可以直接指定自動套用的金鑰:
設定主機別名為 server_001 指定 IP 是 172.16.160.128 使用者 ruyut 連接埠 22 使用金鑰檔案 ~/.ssh/id_ed25519_server_001
這樣下次就可以直接這樣連進去了:
產生 ssh 金鑰,指定名稱為 id_ed25519_server_001 ,email 為 a@ruyut.com (可以省略)
要輸入兩次密碼,都是直接按下 Enter 跳過
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_server_001 -C "a@ruyut.com"
Generating public/private ed25519 key pair.
Enter passphrase for "/Users/ruyut/.ssh/id_ed25519_server_001" (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/ruyut/.ssh/id_ed25519_metis_home
Your public key has been saved in /Users/ruyut/.ssh/id_ed25519_metis_home.pub
The key fingerprint is:
SHA256:YyyYTzzzzMptff200+wwwTO112mKuaFXkxRlPPDatwA a@ruyut.com
The key's randomart image is:
+--[ED25519 256]--+
| .+o |
| .oo |
| E... |
| .+. |
| . . S.+oo. |
| * o @ =o . |
| . * ..+.@ . |
|..oo +o+o+.o |
|.==..o.ooo+o. |
+----[SHA256]-----+
到 ~/.ssh 資料夾下面就會看到剛剛建立的金鑰了
cd ~/.ssh
~/.ssh % ls
config
id_ed25519_server_001
id_ed25519_server_001.pub
id_ed25519
id_ed25519.pub
使用 ssh-copy-id 指令直接把公鑰加入至目標主機的 ~/.ssh/config 中,需要把 ruyut@172.16.160.128 替換為自己的主機登入資訊:
ssh-copy-id -i ~/.ssh/id_ed25519_server_001.pub ruyut@172.16.160.128
現在已經可以免密碼登入了,只是每次都要指定金鑰很麻煩,可以手動編輯 ssh 連線設定檔,可以自訂連線的別名,也可以直接指定自動套用的金鑰:
vi ~/.ssh/config
設定主機別名為 server_001 指定 IP 是 172.16.160.128 使用者 ruyut 連接埠 22 使用金鑰檔案 ~/.ssh/id_ed25519_server_001
Host server_001
HostName 172.16.160.128
user ruyut
Port 22
IdentityFile ~/.ssh/id_ed25519_server_001
這樣下次就可以直接這樣連進去了:
ssh server_001
留言
張貼留言
如果有任何問題、建議、想說的話或文章題目推薦,都歡迎留言或來信: a@ruyut.com