Git推送到origin时权限被拒绝,致命错误:无法从远程存储库读取。

6

我已经将我的公共ssh密钥添加到git仓库中。 我已经将私钥添加到了我的/c/Users/totty/.ssh/。

当我运行 ssh -vT git@github.com 时,它会显示 Hi X! You've successfully authenticated, but GitHub does not provide shell access.

当我运行 git push origin 时,我得到了 Permission to * denied fatal: Could not read from remote repository

这个github出了什么问题?我无法从cmd、git扩展推送。但在windows的github上可以工作...

当我删除我的ssh密钥并运行 ssh -vT git@github.com 后,我收到了 debug1: No more authentication methods to try.


还有另一件奇怪的事情...如果你看一下圈起来的文本,那不是我的用户名或电子邮件。 我甚至检查了我的git配置文件,也没有找到。它是从哪里来的?我的意思是 gs11118

enter image description here

2个回答

2

首先,用户名/电子邮件地址(您使用git config user.name/user.email设置的)与GitHub凭据(用户GitHub帐户名称)无关。

其次,请确保您的git push实际上使用的是SSH URL:

cd /path/to/my/local/repo
git remote -v

如果您看到以https://...开头的URL,那么即使ssh -T git@github.com正确地识别了您,Git也不会将其用作凭据。它将使用存储在Windows凭据管理器中的内容。

-1

你可能正在推送到一个不属于你或者不是你拥有的仓库,而是从别人那里克隆下来的。

这个仓库的 SSH 格式的 URL(可以通过 git remote -v 命令查看)长这样:

origin  git@github.com:username/repo.git(fetch)
origin  git@github.com:username/repo.git(push)

或 HTTPS 格式:

origin  https://github.com/username/repo.git(fetch)
origin  https://github.com/username/repo.git(push)

在你的代码库中,你可能会发现用户名既不是你自己的,也不是你的组织或协作者的。那么,如果你想要推送它,你可以进入原始代码库(https://github.com/username/repo),将该代码库复制到你的GitHub账户(如本问题的github标签),然后使用git remote set-url origin命令来重写本地代码库的远程URL。
之后,你就可以将其作为派生版本推送到你所拥有的远程库上。 编辑: 如果你使用HTTPS方式,你可能需要查看Git凭据
或者,如果原始代码库是你负责开发的地方,你可以请求组织或协作者将你添加为协作者。

编辑2: 感谢与@VonC的评论(交流?),您可以查看文件~/.ssh/config,由于您提供的图像,它可能是C:\Users\totty\.ssh\config,以查找是否有指定的密钥,即IdentityFile,用于存储库。 参考为给定域指定git push的SSH密钥


不,远程仓库并不重要。重要的是(在OP图片中的红圈内)GitHub用于对该远程仓库进行身份验证的用户名(无论是否拥有该仓库):该用户名与预期的用户名不同。我的答案指出了在哪里查找意外的用户名。一旦使用的用户名是正确的,那么只有在这种情况下,您的答案才适用。 - VonC
@VonC 我尝试使用SSH的方式推送到别人的存储库,但出现了“Permission to <other>/<repo>.git denied to <me>”的错误。而使用HTTPS的方式会有更多的错误:“fatal: unable to access 'https://github.com/<other>/<repo>.git/': The requested URL returned error: 403”。然而,OP没有收到HTTPS的错误消息,并且不知道“me”(gs11118)是谁。这个存储库是否有可能错误地使用了gs11118的SSH密钥? - Geno Chen
可能是的:这确实取决于用于“origin”的实际URL。关于SSH,远程URL可能会引用~/.ssh/config中的条目,从而引用错误的私钥。 - VonC
@VonC 谢谢。我添加了我的答案和一些看起来相关的东西。 - Geno Chen
这不是实际答案,回答者似乎并不完全理解问题所在。 - mibbit

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接