我尝试推送时出现以下错误:
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists
我知道这意味着什么。但是,id_rsa.pub
确实存在于本地,并且它也被复制到bitbucker,它们都是相同的。存储库也存在。
原因是什么?
答案 0 :(得分:1)
检查您是否放入了正确的远程存储库路径(即git@github.com:username/reponame
)。
使用ssh git@somehostname.com -T -vv
调试连接以获得详细模式。
检查输出。它会告诉你发生了什么。如果你仍然卡住了,请把它贴在这里,我们可以看看。
ssh
会经常抱怨。
chmod 0600 ~/.ssh/id_rsa
,~/.ssh
目录最多设置为0700。~
和~/..
(父目录,Linux上的/home
和Mac OS X上的/Users
)最多应设置为744。还要检查密钥及其父目录上的组和用户权限是否正确设置:
$ id -un && id -ug # check output of this command before using! username groupname $ chown --recursive $(id -un):$(id -gn) ~
这将重置主目录上的所有权限,以便您当前的用户和组拥有所有文件。这可能不是你想要的。请参阅man chown
。
如果您仍然遇到问题,可能还需要检查远程主机上的~/.ssh/authorized_keys
文件。它的权限也是一个失败点。
@AlexanderSupertramp,我说权限最多应为744
',是,仅指SSH的要求。但我没有建议您将/home
目录chmod到该号码。每个操作系统都有自己的目录权限要求,我只能提供通用指令,因为您没有提供有关系统的大量信息。无论如何,我非常抱歉我的答案不明确。
您的mac可能无法启动,因为744
过于宽松。但我不能确定。要解决此问题,您可能需要访问Apple Store的Genius Bar或联系授权的维修技术人员。您也可以使用内置工具自动修复目录权限,如下所示:
Command+S
启动进入单用户模式,以启用Mac,如this article中所述。