本文档记录了从SSH权限报错到成功推送代码的完整排查过程。
一、问题描述
执行 SSH连接命令时报错:
$ ssh -T git@gitcode. net
git@gitcode. net: Permissio n denied (publickey).
且使用
remote : HTTP Basic: A ccess denied
fatal :A uthentication faile d for ' https:/ /gitcode .net/...... '
二、排查过程
2.1 使用调试模式查看详情
运行以下命令查看详细的SSH 连接日志:
ssh -Tv git@gitcode. net
日志显示本地存在一个或者多个密钥(例如id_ed25519和 id_rsa),但服务器均拒绝,说明公钥未正确添加到GitCode账号。
2.2 检查本地公钥
查看本地ed25519公钥内容:
cat ~1 .ssh/i d_ed25519.pub
与GitCode 后台已添加的公钥对比后,发现GitCode 上的公钥来自CSDN 自动生成(邮箱为 "GItcode默认的邮箱"),与本地一致。
2.3 发现域名问题
原来我一直用的是 gitcode.net,但我的公钥邮箱是 @noreply.gitcode.com,试试换成 .com
ssh - T git@gitcode.c om
首次连接时会出现主机确认提示,输入yes 即可:
Are you sure you want to continue connec ting (yes/no/fingerprint)?
yes
然后应该就能看到 Welcome to GitCode 了 🎉
三、根本原因
远程仓库地址使用的是
https://gitcode .net/用户名/仓库名字 错 误
应该使用正常的SSH路径
git@gitcode .com:你的用户名 /项目英文名字 .git 正确
四、解决方案
将远程仓库地址从
git remote set-url origin
**git@gitcode. **com:你的用户名/项目英文名字.git
然后重新推送:
| git push - u origin main