GitHub SSH 密钥配置(适配 443 端口)笔记
一、核心场景
解决 GitHub 22 端口访问被阻断问题,通过配置 SSH 密钥 + 443 备用端口实现免密访问 GitHub 仓库。
二、操作步骤
1. 生成 SSH 密钥
# 生成 ed25519 算法的 SSH 密钥(安全性更高)
ssh-keygen -t ed25519 -C "your_email@example.com"
- 执行后一路回车(无需设置密钥密码,简化服务器使用);
- 密钥默认生成路径:
~/.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 端口被封)
# 编辑/创建 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:网络/防火墙阻断 443 端口,需联系服务器运营商解封; - 提示
Permission denied (publickey):公钥未正确添加到 GitHub / 私钥权限错误; - 无响应:检查服务器 DNS(可临时替换为 8.8.8.8)。
- 提示
四、后续使用
配置完成后,直接用 SSH 地址克隆/操作仓库即可免密:
# 克隆仓库示例
git clone git@github.com:你的用户名/仓库名.git