要在 iMac 和 Raspberry Pi 3 之間建立 SSH 金鑰連線,可以按照以下步驟來操作。這樣可以讓你在不需要每次都輸入密碼的情況下,從 iMac 連線到 Raspberry Pi。
打開 Terminal。
輸入以下指令來生成 SSH 金鑰:
bash
複製程式碼
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
-t rsa 指定金鑰類型為 RSA。
-b 4096 指定金鑰長度為 4096 位元(更安全)。
-C "your_email@example.com" 添加註解(可選)。
系統會提示你指定金鑰儲存路徑,預設路徑是 ~/.ssh/id_rsa,直接按 Enter 鍵以使用預設值。
系統會詢問你是否要設定 passphrase(密碼短語),這不是必需的,如果你不想設定密碼短語,直接按 Enter 跳過。
確保 Raspberry Pi 正在運行,並連接到同一網路。
在 iMac 的 Terminal 輸入以下指令,將公鑰傳輸到 Raspberry Pi:
bash
複製程式碼
ssh-copy-id -i ~/.ssh/id_rsa.pub pi@raspberrypi.local
pi 是預設的使用者名稱,如果你有改過使用者名稱,請替換成你的使用者名稱。
raspberrypi.local 是 Raspberry Pi 的主機名稱,如果你有更改過主機名稱,請替換成新的主機名稱。
輸入 123 當前的密碼以完成公鑰複製。
如果 ssh-copy-id 指令不可用,請手動複製公鑰:
在 iMac 上執行以下指令來顯示公鑰內容:
bash
複製程式碼
cat ~/.ssh/id_rsa.pub
複製顯示的內容。
使用密碼連線到 Raspberry Pi:
bash
複製程式碼
ssh pi@raspberrypi.local
在 Raspberry Pi 上編輯 ~/.ssh/authorized_keys 檔案:
bash
複製程式碼
nano ~/.ssh/authorized_keys
將剛才複製的公鑰內容貼入檔案中,然後儲存並退出(Ctrl + X,然後按 Y,再按 Enter)。
在 iMac 的 Terminal 上執行以下指令:
bash
複製程式碼
ssh pi@raspberrypi.local
你應該能夠直接連線到 Raspberry Pi,而不需要輸入密碼。
確認 Raspberry Pi 的 SSH 伺服器是否開啟。如果需要開啟,可以在 Raspberry Pi 上執行以下指令來啟用:
bash
複製程式碼
sudo systemctl enable ssh
sudo systemctl start ssh
如果 iMac 和 Raspberry Pi 不在同一網段,可能需要使用 IP 地址而不是 raspberrypi.local。
這樣應該就能完成 iMac 和 Raspberry Pi 之間的無密碼 SSH 連線設定。如果有任何問題,請告訴我!
4o
你說:
這個金鑰我可以保存成檔案嗎?
ChatGPT 說:
ChatGPT
是的,SSH 金鑰可以保存成檔案,事實上,它們本來就被保存為檔案。當你使用 ssh-keygen 生成金鑰時,會自動產生兩個檔案:一個是私鑰檔案,一個是公鑰檔案。你可以在這些檔案的基礎上,進行保存、備份或移動到其他設備使用。
當你使用以下指令生成 SSH 金鑰時:
bash
複製程式碼
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
預設情況下,會生成兩個檔案,存儲在 ~/.ssh 目錄下:
私鑰檔案(默認為 id_rsa):~/.ssh/id_rsa
公鑰檔案(默認為 id_rsa.pub):~/.ssh/id_rsa.pub
這兩個檔案構成了一對,私鑰應該保密,而公鑰則可以自由分發。
你可以手動備份這兩個檔案到其他位置,如 USB 隨身碟、雲端儲存或其他電腦。
檢視公鑰內容:
cat ~/.ssh/id_rsa.pub
這個指令會顯示公鑰的內容,方便你複製到其他設備或服務。
檢視私鑰檔案的位置:
ls -l ~/.ssh/id_rsa
這個指令會顯示私鑰檔案的詳細資訊。不要公開分享這個檔案的內容。
在生成 SSH 金鑰時,你也可以自定義檔案名稱和路徑:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f ~/Desktop/my_custom_key
這個指令會在桌面上生成兩個檔案:
私鑰:~/Desktop/my_custom_key
公鑰:~/Desktop/my_custom_key.pub
你可以將這些檔案複製或移動到其他位置進行備份:
bash
複製程式碼
# 複製私鑰和公鑰到備份目錄
cp ~/.ssh/id_rsa* /path/to/backup/directory/
或移動到其他位置:
bash
複製程式碼
# 移動私鑰和公鑰到指定目錄
mv ~/.ssh/id_rsa* /path/to/new/directory/
如果你需要使用備份的 SSH 金鑰檔案連線到另一台設備,可以使用 -i 參數指定私鑰檔案:
bash
複製程式碼
ssh -i /path/to/backup/directory/id_rsa pi@raspberrypi.local
這樣,你可以靈活地使用不同的金鑰檔案來進行 SSH 連線。
私鑰:保存在你自己控制的設備中,不要輕易洩露。
公鑰:分發到你想要連線的設備上,如 Raspberry Pi 的 ~/.ssh/authorized_keys 檔案中。
備份:可以將這兩個檔案備份到其他位置以防丟失。