SSH密钥配置与GitHub仓库推送方法
SSH连接不仅更安全,而且在处理大文件或网络不稳定时表现更加可靠。配置完成后,可享受更快的推送速度,Git操作将变得更加顺畅高效。
1. 生成SSH密钥
检查现有SSH密钥
# 查看是否已存在SSH密钥
ls -al ~/.ssh
生成新的SSH密钥
生成ED25519密钥
# 生成ED25519密钥(推荐)
ssh-keygen -t ed25519 -C "3220102382@zju.edu.cn"
# 或者生成RSA密钥
ssh-keygen -t rsa -b 4096 -C "3220102382@zju.edu.cn"
生成过程中会提示:
- 输入保存密钥的文件路径(Enter表示默认)
- 设置密钥密码(可选,Enter表示无密码)
2. 启动SSH代理并添加密钥
启动SSH代理
打开Git Bash界面
# 启动SSH代理
eval "$(ssh-agent -s)"
输出类似:Agent pid 59566,每次启动SSH代理时都会分配一个不同的随机pid。
将SSH私钥添加到代理
# 默认路径添加密钥
ssh-add ~/.ssh/id_ed25519
-
可能出现情况:找不到文件

-
检查SSH密钥文件位置
# 查看.ssh目录中的所有文件 ls -la ~/.ssh/ # 或者查看所有可能的位置 find /c/Users/13571 -name "id_*" -type f 2>/dev/null
添加后显示:

验证密钥已添加
# 查看已添加的密钥
ssh-add -l
3. 将公钥添加到GitHub
查看并复制公钥内容
cat ~/.ssh/id_ed25519.pub
在GitHub中添加公钥
- 登录GitHub,点击头像 → Settings**
- 左侧菜单选择SSH and GPG keys
- New SSH key
4. 测试SSH连接
# 测试连接到GitHub
ssh -T git@github.com
成功连接会显示:
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
5. 配置Git使用SSH
检查当前远程仓库URL
git remote -v
如果是HTTPS,切换为SSH
# 新建远程连接
git remote add origin git@github.com:warbler12/HA.git
# 修改远程仓库URL为SSH格式
git remote set-url origin git@github.com:username/repository.git
6. 拉取最新代码
首次拉取
# 获取远程更新
git fetch origin
# 拉取并合并远程更改
git pull origin main
# 如果出现"unrelated histories"错误,使用:
git pull origin main --allow-unrelated-histories
处理合并提交消息界面

| 操作 | 按键 | 说明 |
|---|---|---|
| 进入编辑 | i |
开始编辑消息 |
| 退出编辑 | Esc |
返回命令模式 |
| 保存退出 | :wq + Enter |
保存并退出 |
| 强制退出 | :qa! + Enter |
不保存强制退出 |
7. 提交和推送代码
添加和提交更改
# 添加所有更改文件
git add .
# 提交更改
git commit -m "描述你的更改"
推送到GitHub
# 首次推送,设置上游分支
git push -u origin main
# 后续推送
git push
处理推送问题
- 如果推送被拒绝,先拉取最新代码,解决冲突后再次推送
- 网络不稳定时使用进度显示
git push --progress -v
常见问题解决
🔄 每次会话工作流程
# 1. 启动SSH代理
eval "$(ssh-agent -s)"
# 2. 添加SSH密钥
ssh-add ~/.ssh/id_rsa
# 或者
ssh-add ~/.ssh/id_ed25519
# 3. 验证连接
ssh -T git@github.com
# 4. 进行Git操作
git push origin main
网络连接问题
# 设置Git缓冲区大小
git config --global http.postBuffer 104857600
# 启用压缩
git config --global core.compression 9
权限问题
# 修复SSH密钥权限
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_ed25519
chmod 644 ~/.ssh/id_ed25519.pub
连接测试
# 详细测试SSH连接
ssh -vT git@github.com

浙公网安备 33010602011771号