权限被拒绝(publickey)但公钥在本地和远程存在

时间:2014-04-19 14:56:59

标签: linux ubuntu github ssh public-key

我尝试推送时出现以下错误:

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,它们都是相同的。存储库也存在。

原因是什么?

1 个答案:

答案 0 :(得分:1)

公钥问题

  1. 检查您是否放入了正确的远程存储库路径(即git@github.com:username/reponame)。

  2. 使用ssh git@somehostname.com -T -vv调试连接以获得详细模式。 检查输出。它会告诉你发生了什么。如果你仍然卡住了,请把它贴在这里,我们可以看看。

  3. 如果您的私钥导致私钥的父目录为higher permissions set than they ought to,则
  4. ssh会经常抱怨。

    1. 密钥本身应设置为chmod 0600 ~/.ssh/id_rsa~/.ssh目录最多设置为0700。
    2. ~~/..(父目录,Linux上的/home和Mac OS X上的/Users)最多应设置为744。
    3. 还要检查密钥及其父目录上的组和用户权限是否正确设置:

      $ id -un && id -ug   # check output of this command before using!
      username
      groupname
      $ chown --recursive $(id -un):$(id -gn) ~   
      

      这将重置主目录上的所有权限,以便您当前的用户和组拥有所有文件。这可能不是你想要的。请参阅man chown

  5. 如果您仍然遇到问题,可能还需要检查远程主机上的~/.ssh/authorized_keys文件。它的权限也是一个失败点。


  6. 修复OSX目录权限

    @AlexanderSupertramp,我说权限最多应为744 ',是,仅指SSH的要求。但我没有建议您将/home目录chmod到该号码。每个操作系统都有自己的目录权限要求,我只能提供通用指令,因为您没有提供有关系统的大量信息。无论如何,我非常抱歉我的答案不明确。

    您的mac可能无法启动,因为744过于宽松。但我不能确定。要解决此问题,您可能需要访问Apple Store的Genius Bar或联系授权的维修技术人员。您也可以使用内置工具自动修复目录权限,如下所示:

    1. 按照电话按钮的同时按Command+S启动进入单用户模式,以启用Mac,如this article中所述。
    2. 从菜单栏启动OSX Disk Utility,然后按照此Apple KB
    3. 中的说明使用修复权限工具