使用 SSH 連線 Github 踩雷紀錄
為什麼你應該使用預設的 SSH 金鑰名稱 (id_ed25519)
TL;DR
不要把產出來的 SSH key 重新命名。使用預設的檔案名稱,例如 id_ed25519,會讓你的開發環境、Git 操作、伺服器連線流程更順暢,省下不必要的設定工夫。
背景
許多教學在產生 SSH 金鑰的時候會提到 -f 參數,例如:
ssh-keygen -t ed25519 -C "me@example.com" -f ~/.ssh/my_custom_key
這樣當然可以,但問題也來了:你必須記得這組金鑰叫什麼名字,然後手動在 .ssh/config 或 Git 設定中指定它。
如果你只是用一兩組金鑰,這沒什麼問題;但當你開始處理多個專案、多個環境或 CI/CD 部署時,這些自訂名字就會變成技術債。
預設名稱有什麼好處?
- 相容性高
大多數工具(如 Git、SSH client)預設都會找 ~/.ssh/id_ed25519 或 id_rsa。不用額外設定,直接能用。
- 減少設定複雜度
不用修改 ~/.ssh/config,也不用每次連線都指定 -i 路徑。
- 更容易備份與遷移
將 .ssh/ 整個目錄備份就好,不用另外記一堆奇怪的金鑰名稱。
- 習慣統一,降低溝通成本
團隊成員之間若都使用預設名稱,寫文件與 debug 都更直觀。
什麼情況下才需要改名?
當你:
- 維護多個 GitHub 帳號,需要不同金鑰
- 管理多組伺服器,每組金鑰對應不同權限
- 使用自動化部署流程(CI/CD),需要明確指定某組金鑰
這時可以考慮使用 -f 自訂名稱,並搭配 .ssh/config 做進一步配置。
結論
如果你不知道為什麼要自訂金鑰名稱,那你就不應該改名。
除非你有非常明確的需求,否則直接使用:
ssh-keygen -t ed25519 -C "you@example.com"