Linux git推送错误:无法读取';https://github.com': 拒绝许可

Linux git推送错误:无法读取';https://github.com': 拒绝许可,linux,git,github,ssh,centos,Linux,Git,Github,Ssh,Centos,我在CentOS 7上,正试图推到github。首先,我使用ssh,但我的系统似乎有一些奇怪的错误,我的ssh密钥不断消失(我知道这是难以置信的,但我没有其他解释)。相反,我一直在尝试使用https,但我无法推到github,也不知道为什么。下面是发生的情况: $ git push origin remote fatal: could not read Username for 'https://github.com': Permission denied 您能帮忙吗?如果您想使用https,

我在CentOS 7上,正试图推到github。首先,我使用ssh,但我的系统似乎有一些奇怪的错误,我的ssh密钥不断消失(我知道这是难以置信的,但我没有其他解释)。相反,我一直在尝试使用https,但我无法推到github,也不知道为什么。下面是发生的情况:

$ git push origin remote
fatal: could not read Username for 'https://github.com': Permission denied

您能帮忙吗?

如果您想使用https,您需要您的回购协议的完整url:

git remote set-url https://<yourLogin>@github.com/<yourLogin>/<yourRepo>
git远程设置url https:////github.com//
然后您可以尝试一次git推送


这将要求您输入GitHub帐户密码,除非您已激活2FA(请参见“”),在这种情况下,您将需要生成第一个a。

我已经尝试过了,唯一可以生成类似内容的方法是断开我的
.git
文件的一部分。考虑到SSH凭据的事实,如您所说的“消失”,我猜这就是错误消息所说的:

fatal: could not read Password 
i、 例如,您没有对要读取的文件的读取权限

现在,对于主目录中您无法读取的文件,将启用查找:

cd
find -not -readable -print0 | xargs -0 ls -lh

将为您提供有关主目录中用户无法读取的所有文件的详细信息。通常,您应该只在那里看到几个锁文件。我怀疑你的.ssh文件夹中也有东西,或者你的git存储库中也有东西。

问题肯定是我使用的
git
版本有一个bug

另外,我和我的团队合作伙伴现在对
Linux
更为熟悉,我们认识到对所有密钥使用相同的
.ssh
文件夹(作为
root
,同样如此!)是个坏主意


在任何情况下,我们最终停止了对服务器的胡闹(因为我们真的不知道我们在做什么),而是用
Heroku
部署了我们的网站。但是谢谢你的帮助

好的,人类不知道SSH密钥消失的bug。这些是常规的、只有所有者可读的文件~/.ssh,所以请找出这些文件发生了什么。该文件夹中的所有文件是否真的归您的用户所有
ls-lh~/.ssh
可能会有所帮助。我的猜测是,既然你看到在你的主文件夹最私密的部分发生了虚假的事情,你真的应该首先修复它,然后再继续修复git用户名存储的权限。你在做SSH-order-git作为root的事情吗,你不应该做的?!这并不是一个真正的bug——我对linux比较陌生,我也不太确定哪些文件在重新启动后仍然存在,哪些文件没有。我还与其他用户共享系统,可能其中一个用户重写了我的.ssh目录。我当然不知道发生了什么,但我认为在这种情况下https可能比ssh更容易。如果你没有使用与其他人相同的用户名(永远不要这样做),那么他们将无法在你的任何文件上写入;事实上,他们将无法读取您的~/.ssh目录。嗯……他们有根访问权限。这只是一个类项目。世界上有谁拥有root权限会弄乱你的.ssh文件夹?外面有这么多邪恶的东西。我还没有激活2FA。所以我照你说的做了,现在当我输入
$git push-u origin master
时,我得到:
致命:无法读取https://mchenja@github.com”:权限被拒绝
@mchenja您正在使用哪个版本的git(可能是个bug:)