如何加入使用者的 ssh 金鑰到 ubuntu 伺服器
注意事項
- 金鑰名稱可保持 id_rsa.開頭,eg. "id_rsa.target_device",以後使用上比較直覺
-C:
註解基本上人物是必需,至少知道是誰的金鑰,伺服器管理員好管理。也可以視情況加入是哪一台電腦、在哪一個位置等等
環境
- 自己電腦:MacOS 14.4.1
- 伺服器電腦:Ubuntu 24
查詢自己電腦是否已有金鑰
ls -alt ~/.ssh
如果看到 id_rsa 和 id_rsa.pub 這兩個檔為一組,則表示已存在至少一組金鑰。pub是公鑰,另一個是私鑰。
沒有金鑰的,要先產出一組
ssh-keygen -t rsa -b 4096 \
-f ~/.ssh/YOUR_ID_RSA_FILE_NAME \
-C "your_email@example.com"
-f:
設定要產出金鑰的檔案位置跟檔名-C:
該公鑰文件裡最後面會留下的註解,至少要方便辨別是哪位使用者的
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
這樣就有一組金鑰了
把剛產出的公鑰加入到伺服器未來要登入的帳號
如果你的伺服器支援 ssh-copy-id,這是最簡單的方法:
ssh-copy-id -i ~/.ssh/YOUR_ID_RSA_FILE_NAME.pub -p 22 \
YOUR_SERVER_ACCOUNT@SERVER_IP_OR_ADDRESS
-i:
要上傳的檔案來源位置-p:
伺服器監聽的 ssh port,預設是 22
Number of key(s) added: 1
Now try logging into the machine, with: "ssh -i ~/.ssh/YOUR_ID_RSA_FILE_NAME -p 22 'YOUR_SERVER_ACCOUNT@SERVER_IP_OR_ADDRESS'"
and check to make sure that only the key(s) you wanted were added.
公鑰會存在伺服器該帳號的 ~/.ssh/authorized_keys
不靠套件,手動加入公鑰的話:
cat ~/.ssh/YOUR_ID_RSA_FILE_NAME.pub | ssh -i YOUR_ID_RSA_FILE_NAME YOUR_SERVER_ACCOUNT@SERVER_IP_OR_ADDRESS 'cat >> ~/.ssh/authorized_keys'
如果伺服器的 authorized_keys 不存在,請建立該檔,並給正確權限:
touch ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
再做一次加入公鑰的步驟
登入 terminal
ssh -i ~/.ssh/YOUR_ID_RSA_FILE_NAME -p 22 'YOUR_SERVER_ACCOUNT@SERVER_IP_OR_ADDRESS'
遇到問題的話,可在伺服器端確認伺服器是否正在執行 ssh server
sudo systemctl status ssh
沒有的話,安裝:
sudo apt install openssh-server
留言
張貼留言