GitHub SSH 金鑰註冊指南
了解如何在 GitHub 帳戶上註冊 SSH 金鑰,以便在克隆儲存庫和進行身份驗證時無需每次輸入密碼。
📋 概述
SSH (Secure Shell) 是一種協定,可以通過安全的身份驗證而無需在網路上傳送密碼。通過在 GitHub 上註冊 SSH 金鑰對,您就可以克隆、拉取和推送儲存庫,而無需每次輸入憑證。
GitHub 支援兩種類型的 SSH 金鑰:
- Ed25519 (推薦) — 現代、安全,且金鑰體積更小
- RSA (4096位) — 用於兼容性,如果您的系統不支援 Ed25519,則使用此類型
🛠️ 設定步驟
1. 檢查現有 SSH 金鑰
在產生新金鑰之前,請檢查您是否已擁有一個金鑰。
Linux / macOS / WSL:
ls -la ~/.ssh/
Windows (PowerShell):
Get-ChildItem $env:USERPROFILE\.ssh
查找名為 id_ed25519、id_ed25519.pub、id_rsa 或 id_rsa.pub 的檔案。如果您已有想要使用的金鑰對,請跳至第 3 步。
2. 產生新的 SSH 金鑰
使用 Ed25519 演算法產生新的 SSH 金鑰(推薦)。
Linux / macOS / WSL:
ssh-keygen -t ed25519 -C "<your-email@example.com>"
Windows (PowerShell):
ssh-keygen -t ed25519 -C "<your-email@example.com>"
當提示輸入檔案位置時,按 Enter 接受預設位置(~/.ssh/id_ed25519)。
當提示輸入密碼片語時,您可以輸入安全的密碼片語或按 Enter 留空。使用密碼片語可以增加額外的安全層來保護私鑰。
3. 檢視並複製您的公鑰
顯示您的公鑰並複製到剪貼簿。
Linux / macOS / WSL:
cat ~/.ssh/id_ed25519.pub
Windows (PowerShell):
Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub
公鑰以 ssh-ed25519 或 ssh-rsa 開頭,以您的電子郵件位址結尾。選擇全部輸出內容並複製。
⚠️ 安全注意事項: 切勿分享或公開您的私鑰(
id_ed25519或id_rsa,不帶.pub)。只有公鑰(id_ed25519.pub)可以安全分享。
4. 在 GitHub 上註冊金鑰
- 登入 GitHub
- 點擊您的頭像 → Settings
- 在左側邊欄中點擊 SSH and GPG keys
- 點擊 New SSH key
- 在 Title 欄位中輸入描述性標籤(例如
我的筆電、辦公電腦) - 在 Key 欄位中貼上您的公鑰
- 點擊 Add SSH key
5. 測試連線
驗證您的 SSH 金鑰是否正確註冊。
ssh -T git@github.com
首次連線時您可能會看到以下警告:
The authenticity of host 'github.com (IP 位址)' can't be established.
RSA key fingerprint is SHA256:xxxxx.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
輸入 yes 並按 Enter。如果成功,您將看到:
Hi <username>! You've successfully authenticated, but GitHub does not provide shell access.
6. 使用 SSH 克隆儲存庫
確認連線後,使用 SSH 位址克隆儲存庫。
git clone git@github.com:<owner>/<repository>.git
將 <owner> 替換為儲存庫擁有者,將 <repository> 替換為儲存庫名稱。
🔍 驗證 SSH 金鑰註冊
要列出您 GitHub 帳戶上註冊的所有 SSH 金鑰:
- 進入 Settings → SSH and GPG keys
- 檢視已註冊金鑰的列表,包括標題和建立日期
🩺 疑難排解
| 症狀 | 原因 | 解決方案 |
|---|---|---|
Permission denied (publickey) | 未註冊 SSH 金鑰,或使用了錯誤的金鑰 | 確認您的公鑰已在 GitHub 上註冊。確保您使用的是正確的私鑰。 |
ssh -T 顯示 "successfully authenticated" 但 git 操作失敗 | 金鑰未新增到特定儲存庫 | 確保您的 SSH 金鑰在該儲存庫設定中具有讀取/寫入權限。 |
| 連線逾時 | 防火牆或網路問題阻斷了 22 連接埠 | 檢查您的網路設定,或嘗試改用 HTTPS。 |
git@github.com: Permission denied | 遠端 URL 格式錯誤 | 在遠端 URL 中使用 git@github.com:(冒號)而不是 https://github.com/。 |
| "Too many authentication failures" | 伺服器因金鑰嘗試次數過多而拒絕 | 使用 ssh -vT git@github.com 進行偵錯,或使用 -i ~/.ssh/id_ed25519 指定金鑰。 |
🔒 安全最佳實踐
- 切勿分享您的私鑰(
id_ed25519或id_rsa)。不要將其附加到 issue、郵件中,或提交到儲存庫。 - 產生 SSH 金鑰時使用密碼片語來保護私鑰,即使您的設備被入侵也能多一層保護。
- 每個設備使用唯一的 SSH 金鑰 — 為您的筆電、桌上型電腦和伺服器分別註冊不同的金鑰。
- 定期審查已註冊的金鑰 — 從您的 GitHub 帳戶中移除舊或不再使用的 SSH 金鑰。
- 對於需要集中管理金鑰的組織,考慮使用 SSH 憑證。
📚 參考
版本: 1.0
最後更新: 2026-09-24
來源檔案: giipv3/public/help/github-ssh-key.zh-TW.md