GitHub SSH 密钥配置笔记

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

  1. 登录 GitHub,点击右上角头像 → Settings
  2. 左侧栏「Access」板块点击 SSH and GPG keys
  3. 点击 New SSH key / Add SSH key
    • 「Title」:填写备注(如「服务器- Debian」,便于识别);
    • 「Key type」:选择 Authentication key(认证用);
    • 「Key」:粘贴复制的公钥内容;
  4. 点击 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.

三、关键注意事项

  1. 权限加固:确保 SSH 目录/文件权限正确(避免认证失败)
    chmod 700 ~/.ssh       # 目录权限
    chmod 600 ~/.ssh/id_ed25519  # 私钥权限(必须600,否则会被SSH拒绝)
    
  2. 端口测试:若 443 仍连接失败,先测试端口连通性
    nc -zv ssh.github.com 443  # 成功提示:Connection succeeded!
    
  3. 失败排查
    • 提示 Connection closed:网络/防火墙阻断 443 端口,需联系服务器运营商解封;
    • 提示 Permission denied (publickey):公钥未正确添加到 GitHub / 私钥权限错误;
    • 无响应:检查服务器 DNS(可临时替换为 8.8.8.8)。

四、后续使用

配置完成后,直接用 SSH 地址克隆/操作仓库即可免密:

# 克隆仓库示例
git clone git@github.com:你的用户名/仓库名.git
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容