如何解决使用Git时的权限拒绝(公钥)错误?

我在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,但还是同样的错误。

解决办法

用户之前没有生成SSH公钥/私钥对

这个信息在theChaw上起作用,但也可以应用于所有其他支持SSH公钥认证的git仓库。(例如参见gitolite、gitlab或github)。)

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

  • 首先你要cd到你的.ssh目录。打开终端并运行。

    cd ~/.ssh && ssh-keygen

  • 接下来你需要把这个复制到你的剪贴板上。
  • 在OS X上运行。cat id_rsa.pub | pbcopy
  • 在Linux上运行。cat id_rsa.pub | xclip
  • 在Windows上(通过Cygwin/Git Bash)运行。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(感谢@Lee Whitney)。

用户在生成ssh公钥/私钥对之前就已经设置好了

  • 检查你的github或gitlab账户设置中哪一个密钥已被授权
  • 告诉你必须从你的本地计算机上关联哪个相应的私钥

`eval $(ssh-agent -s)'。

告诉你钥匙的位置

`ssh-add ~/.ssh/id_rsa'。

评论(17)

更广泛的故障排除,甚至自动修复都可以用。

ssh -vT git@github.com

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

评论(15)

基本的GIT说明并没有提到SSH密钥的事情。按照上面的一些链接,我找到了一个git帮助页面,它一步一步地解释了如何在各种操作系统上做到这一点(链接会检测你的操作系统并相应地重定向)。

http://help.github.com/set-up-git-redirect/

它介绍了GITHub所需的一切,还给出了详细的解释,如"为什么在创建RSA密钥时要添加口令"我想我要把它贴出来,以防对其他人有帮助...

评论(0)