我用的是Mac雪豹,刚刚安装了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 -vT git@github.com查看调试列表上到底发生了什么。我注意到我的私钥文件名不在列表中。因此,将私钥文件名重命名为'id_rsa'就可以了。希望这能有所帮助。

其他回答

我也犯了同样的错误。

问题是,当将公钥复制到BitBucket(在我的情况下)时,在末尾复制/粘贴了一个不可见的换行符。

因此,在复制公钥时,首先将其复制到记事本,删除末尾的空行,复制并粘贴。

$ cd ~
$ cd .ssh
$ chmod 400 id_rsa

这很直接。键入下面的命令

ssh-keygen -t rsa -b 4096 -C "youremailid@yourdomain.com"

生成SSH密钥。打开文件并复制内容。进入GitHub设置页面,点击SSH key。单击“添加新的SSH密钥”,并将内容粘贴到此处。就是这样:)你不应该再看到这个问题了。

我有一个轻微不同的情况,我登录到一个远程服务器,并在服务器上使用git,当我运行任何git命令时,我得到了相同的消息

   Permission denied (publickey).
   fatal: The remote end hung up unexpectedly

我是通过修改Mac上的/etc/ssh_config文件来解决这个问题的。 从

ForwardAgent no 

to

ForwardAgent yes

我得到了同样的错误。我的问题是混入sudo。

如果不给git clone命令加上sudo前缀,就无法自动创建要克隆到的目录。然而,当我这样做的时候,我的ssh键没有被正确引用。

为了解决这个问题,我通过chmod在我想要包含我的克隆的父目录上设置权限,这样我就可以对它进行写入。然后我运行git克隆没有一个sudo前缀。然后它成功了!之后我把权限改回来了。完成了。