返回 AI Coding 培训
实操 04/11

Git SSH 配置完整指南:让代码推送不再重复输入密码

4 分钟
AI编程AI工具效率方法

第三天下午,很多同学已经把代码推到远程仓库,但每次操作都需要重新认证。SSH 可以减少重复输入,并让身份验证更适合日常开发。

这份教程采用当前更常用的 Ed25519 密钥。已有密钥时不要直接覆盖,先检查并决定是否为课程单独创建一对。

前置条件

  • 已安装 Git,并拥有 GitHub 或 Gitee 等代码平台账号。
  • 已经创建一个远程仓库。
  • 终端当前位于项目根目录。
  • 不要向任何人发送私钥文件;平台只需要公钥。

第一步:检查已有密钥

ls -la ~/.ssh

常见公钥以 .pub 结尾,例如 id_ed25519.pub。如果当前机器已有用于其他公司的密钥,建议为新平台创建独立名称,避免覆盖。

第二步:生成密钥

ssh-keygen -t ed25519 -C "your_email@example.com" -f ~/.ssh/id_ed25519_gitee

命令会生成:

  • ~/.ssh/id_ed25519_gitee:私钥,只能保存在本机。
  • ~/.ssh/id_ed25519_gitee.pub:公钥,可以上传到代码平台。

是否设置私钥口令由使用环境和安全要求决定。共享电脑不应留下个人私钥。

第三步:加入 SSH Agent

macOS 或 Linux 可以执行:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519_gitee

如果管理多把密钥,可以在 ~/.ssh/config 中为不同平台指定 IdentityFile:

Host gitee.com
  HostName gitee.com
  User git
  IdentityFile ~/.ssh/id_ed25519_gitee
  IdentitiesOnly yes

修改配置前先保留现有内容,不要覆盖其他 Host。

第四步:复制并上传公钥

cat ~/.ssh/id_ed25519_gitee.pub

复制完整一行内容,进入代码平台的 SSH 公钥设置页面,新建公钥并保存。不要复制没有 .pub 后缀的私钥。

第五步:测试身份连接

Gitee 可以执行:

ssh -T git@gitee.com

第一次连接会询问是否信任主机指纹。确认域名无误后接受。成功信息说明平台识别了身份,但还需要在真实仓库验证权限。

第六步:切换项目远程地址

先查看当前地址:

git remote -v

从仓库页面复制 SSH 地址,再修改:

git remote set-url origin git@gitee.com:your-name/your-repo.git
git remote -v

不要照抄示例用户名和仓库名。

第七步:实测拉取和推送

git pull
git push

两条命令都成功,且不再要求输入平台账号密码,才算配置完成。如果私钥设置了口令,系统可能要求输入私钥口令,这是另一层本地保护。

常见问题与处理

not a git repository

当前目录不是仓库根目录。执行 pwd 和 ls -la,确认目录内存在 .git,或重新打开正确项目。

Permission denied (publickey)

检查公钥是否上传到当前账号、SSH Agent 是否加载正确私钥、远程地址域名是否匹配,以及 ~/.ssh/config 是否选择了错误身份。

可以使用下面的命令查看详细握手过程,但分享日志前要隐藏用户名和路径信息:

ssh -vT git@gitee.com

仍然要求输入用户名密码

运行 git remote -v,很可能项目仍在使用 HTTPS 地址。

already exists

生成密钥时目标文件已经存在。不要盲目覆盖;选择新文件名,或确认已有密钥确实可以复用。

成功标准

  • 私钥只保存在本机,公钥已上传平台。
  • ssh -T 可以识别账号。
  • 项目 origin 是 SSH 地址。
  • git pull 和 git push 均成功。
  • 重新打开终端后仍能正常工作。

课后练习

为课程仓库完成 SSH 配置,新建一个只包含说明文档的小提交并推送。再换到一个新目录用 SSH 地址重新克隆仓库,验证身份和仓库权限都真正生效。

官方资料

AI编程AI工具效率方法