You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

通过SSH连接GitHub仓库遇权限问题求助

问题解析:GitHub SSH连接的用户名误区

这其实是对GitHub SSH验证机制的小误解,我来给你理清楚:

为什么ssh -T git@github.com能成功?

GitHub的SSH服务器只认git这个专用用户名,它不是通过SSH命令里的用户名识别你的账号,而是通过你提交的SSH公钥来关联到你的GitHub账户。所以当你用git@github.com连接时,服务器验证了你的公钥有效性,确认是你的账号,就会返回那句成功认证的提示——后面说“GitHub does not provide shell access”是完全正常的,因为GitHub本来就不提供SSH shell登录,这个连接只是用来做Git操作的。

为什么ssh -T my-username-here@github.com会失败?

GitHub的SSH服务器上根本没有以你的GitHub用户名命名的用户账号,它只接受git作为连接用户名。你用自己的用户名去连接,服务器找不到对应的用户,自然就会返回“Permission denied (publickey)”的错误啦。

正确的使用方式

平时做Git操作(clone、push、pull等)时,只要你的SSH公钥已经正确添加到GitHub,用git@github.com:你的用户名/仓库名.git这种格式的仓库地址就可以正常工作,完全不用换成自己的用户名。

如果想简化配置,还可以在~/.ssh/config文件里添加这样的条目(没有的话就新建一个):

Host github.com
  User git
  IdentityFile ~/.ssh/你的私钥文件名

这样后续连接GitHub时,就不用每次都写git@前缀啦。

内容的提问来源于stack exchange,提问作者Gelo

火山引擎 最新活动