GitHub SSH 密鑰配置(適配 443 端口)筆記
一、核心場景
解決 GitHub 22 端口訪問被阻斷問題,通過配置 SSH 密鑰 + 443 備用端口實現(xiàn)免密訪問 GitHub 倉庫。
二、操作步驟
1. 生成 SSH 密鑰
# 生成 ed25519 算法的 SSH 密鑰(安全性更高)
ssh-keygen -t ed25519 -C "your_email@example.com"
- 執(zhí)行后一路回車(無需設置密鑰密碼,簡化服務器使用);
- 密鑰默認生成路徑:
~/.ssh/id_ed25519(私鑰)、~/.ssh/id_ed25519.pub(公鑰)。
2. 復制 SSH 公鑰
# 查看并復制公鑰內容(全選復制,不要新增換行/空格)
cat ~/.ssh/id_ed25519.pub
- 若服務器無剪貼板工具(如
pbcopy),直接手動復制終端輸出的公鑰文本; - 公鑰格式:以
ssh-ed25519開頭,以你的郵箱結尾。
3. 將公鑰添加到 GitHub
- 登錄 GitHub,點擊右上角頭像 →
Settings; - 左側欄「Access」板塊點擊
SSH and GPG keys; - 點擊
New SSH key/Add SSH key;- 「Title」:填寫備注(如「服務器- Debian」,便于識別);
- 「Key type」:選擇
Authentication key(認證用); - 「Key」:粘貼復制的公鑰內容;
- 點擊
Add SSH key,按需驗證 GitHub 賬號密碼完成添加。
4. 配置 SSH 客戶端(指定 443 端口,解決 22 端口被封)
# 編輯/創(chuàng)建 SSH 配置文件
vim ~/.ssh/config
粘貼以下配置(覆蓋原有 github.com 配置,無則新增):
Host github.com
HostName ssh.github.com
Port 443
User git
IdentityFile ~/.ssh/id_ed25519 # 私鑰路徑,默認無需修改
TCPKeepAlive yes # 保持連接,避免超時
IdentitiesOnly yes # 僅使用指定私鑰,避免沖突
- 保存退出:
Esc→:wq。
5. 測試 SSH 連接
# 驗證 GitHub SSH 連接
ssh -T git@github.com
? 成功提示:Hi 你的GitHub用戶名! You've successfully authenticated, but GitHub does not provide shell access.
三、關鍵注意事項
-
權限加固:確保 SSH 目錄/文件權限正確(避免認證失?。?
chmod 700 ~/.ssh # 目錄權限 chmod 600 ~/.ssh/id_ed25519 # 私鑰權限(必須600,否則會被SSH拒絕) -
端口測試:若 443 仍連接失敗,先測試端口連通性
nc -zv ssh.github.com 443 # 成功提示:Connection succeeded! -
失敗排查:
- 提示
Connection closed:網(wǎng)絡/防火墻阻斷 443 端口,需聯(lián)系服務器運營商解封; - 提示
Permission denied (publickey):公鑰未正確添加到 GitHub / 私鑰權限錯誤; - 無響應:檢查服務器 DNS(可臨時替換為 8.8.8.8)。
- 提示
四、后續(xù)使用
配置完成后,直接用 SSH 地址克隆/操作倉庫即可免密:
# 克隆倉庫示例
git clone git@github.com:你的用戶名/倉庫名.git