标签:#Git #GitHub #SSH
前言
很多新手克隆 GitHub 仓库习惯使用 HTTPS 地址,每次 git push、git pull 都要输入账号令牌密码,十分繁琐。而 SSH 密钥认证 可以实现免密推送代码,一劳永逸。
误区提醒:命令不是
gelink ssh github.com,正确的测试命令:ssh -T git@github.com
本文覆盖 Windows (Git‑Bash/PowerShell)、MacOS、Linux 全平台,包含密钥生成、公钥上传、连通测试、HTTPS 仓库切换 SSH、网络超时排错全套流程GitHub。
一、前置准备
- 电脑已经安装 Git
- 准备好注册 GitHub 的邮箱地址
二、生成 SSH 密钥
打开终端,Windows 用户推荐打开 Git Bash,执行下面命令(推荐安全的 ed25519 算法密钥):
ssh-keygen -t ed25519 -C "你的GitHub注册邮箱"
⚠️ 如果你的旧系统不支持 ed25519,则使用 RSA 密钥方案:
ssh-keygen -t rsa -b 4096 -C "你的GitHub注册邮箱"
执行后连续敲击三次回车即可。
- 第一次回车:密钥保存路径,默认
~/.ssh/ - 第二次回车:密钥密码(可留空免密)
- 第三次回车:确认密码
生成成功后目录下将产出两个文件:
id_ed25519:私钥,妥善保管,禁止外传id_ed25519.pub:公钥,后面复制上传 GitHub
三、读取并复制公钥内容
Git‑Bash / Mac / Linux
cat ~/.ssh/id_ed25519.pub
Windows PowerShell
cat ~\.ssh\id_ed25519.pub
复制控制台打印出来完整一整行内容,以 ssh‑ed25519 开头、你的邮箱结尾,不要漏掉任何字符。
四、在 GitHub 添加公钥
- 登录 GitHub,右上角头像 →
Settings - 左侧菜单栏找到
SSH and GPG keys - 点击
New SSH key - Title:自定义备注(例如「Windows 办公电脑」)
- Key type:
Authentication key - Key 输入框,粘贴刚刚复制的公钥
- 点击
Add SSH key,完成添加
五、测试 SSH 连通性
终端执行测试命令:
ssh -T git@github.com
首次连接出现确认提示:
Are you sure you want to continue connecting (yes/no/[fingerprint])?
输入 yes 回车。
✅ 成功标志(看到这条提示就代表配置完成)
Hi 你的用户名! You've successfully authenticated, but GitHub does not provide shell access.
这句话是正常提示:SSH 鉴权成功,GitHub 不提供服务器终端登录。
六、使用 SSH 克隆仓库
前往仓库主页,克隆选项切换为 SSH,复制地址。
git clone git@github.com:用户名/仓库名.git
七、旧 HTTPS 仓库切换 SSH 地址
如果你本地已经下载好仓库(HTTPS 方式),不需要重新克隆,直接修改远程地址即可:
#进入项目文件夹
cd 你的项目目录
#修改origin远程地址
git remote set-url origin git@github.com:用户名/仓库名.git
查看远程地址确认修改成功:
git remote -v
八、常见问题:端口 22 连接超时(最常见网络报错)
报错信息:
ssh: connect to host github.com port 22: Connection timed out
原因:国内网络环境经常封禁 SSH 默认 22 端口。 解决方案:SSH 走 443HTTPS 备用端口。
- 在
.ssh目录新建 / 编辑config文件(无后缀!文件名就叫 config) - 写入配置内容:
Host github.com
HostName ssh.github.com
User git
Port 443
- Linux/Mac 用户需要给配置文件权限:
chmod 600 ~/.ssh/config
- 再次测试连接:
ssh -T git@github.com
大概率超时问题直接解决GitHub Doc…。
九、补充:配置本地 Git 用户名邮箱
SSH 密钥只解决免密登录,本地提交记录还需要身份信息,全局配置一次即可:
git config --global user.name "你的GitHub昵称"
git config --global user.email "你的GitHub邮箱"
总结清单
- 生成密钥:
ssh-keygen -t ed25519 -C "邮箱" - 复制公钥:
cat ~/.ssh/id_ed25519.pub - GitHub 网页添加 SSH 公钥
- 连通校验:
ssh -T git@github.com - Clone 仓库:
git clone git@github.com:... - 超时修复:
.ssh/config设置 443 端口
官方参考文档:https://docs.github.com/cn/authentication/connecting-to-github-with-ssh