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