权限被拒绝(公钥)

我在Mac Snow Leopard上,我刚刚安装了git。

我刚刚尝试过

git clone git@thechaw.com:cakebook.git

但是这给了我这个错误。

Initialized empty Git repository in `/Users/username/Documents/cakebook/.git/`
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

我错过了什么?
我也尝试过没有通过的ssh-keygen ,但仍然是同样的错误。


此信息正在使用TheChaw,但可以应用于所有其他支持SSH pubkey身份验证的git存储库。 (例如,参见gitolite,gitlab或github。)

首先设置你自己的公钥/私钥对。 这可以使用DSA或RSA,所以基本上你设置的任何键都可以工作。 在大多数系统上,您可以使用ssh-keygen。

  • 首先,您需要cd到您的.ssh目录中。 打开终端并运行:

    cd ~/.ssh && ssh-keygen

  • 接下来,您需要将其复制到剪贴板。
  • 在OS X上运行: cat id_rsa.pub | pbcopy cat id_rsa.pub | pbcopy
  • 在Linux上运行: cat id_rsa.pub | xclip cat id_rsa.pub | xclip
  • 在Windows上(通过Cygwin / Git Bash)运行: cat id_rsa.pub | clip cat id_rsa.pub | clip
  • 通过网站将您的密钥添加到您的帐户。
  • 最后设置你的.gitconfig。
  • git config --global user.name "bob"
  • git config --global user.email bob@... (不要忘记重新启动你的命令行以确保配置被重新加载)
  • 这就是你应该很好克隆和结账。

    更多信息可以在https://help.github.com/articles/generating-ssh-keys找到(感谢@惠特尼)


    更广泛的故障排除甚至自动修复可以通过以下方式完成

    ssh -vT git@github.com
    

    来源:https://help.github.com/articles/error-permission-denied-publickey/


    当您访问SSH URL(读/写)而不是Git只读URL时,可能会发生此错误,但您无法访问该回购站。

    有时你只想克隆自己的回购,例如部署到服务器。 在这种情况下,您实际上只需要R​​EAD-ONLY访问权限。 但由于这是您自己的回购,GitHub可能会显示SSH URL,如果这是您的偏好。 在这种情况下,如果您的远程主机的公钥不在您的GitHub SSH密钥中,您的访问将被拒绝, 预计会发生

    等价的情况是,当您尝试使用SSH URL克隆其他人没有写入权限的回购时。

    总之, 如果您的意图是仅克隆回购,请使用HTTPS URLhttps://github.com/{user_name}/{project_name}.git git@github.com:{user_name}/{project_name}.git )而不是SSH URL( git@github.com:{user_name}/{project_name}.git ),它可以避免(不必要的)公钥验证。


    更新:GitHub现在将HTTPS显示为默认协议,此举可能可以减少可能的滥用SSH URL的情况。

    链接地址: http://www.djcxy.com/p/27059.html

    上一篇: Permission denied (publickey)

    下一篇: How do I avoid the specification of the username and password at every git push?