我用的是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没有密码,但仍然错误。


当前回答

在GitHub中使用终端添加RSA密钥:

MAC:

进入Users/ xxxx /.ssh文件夹 执行命令:cd ~/。ssh && ssh-keygen -t ed25519 -C "github_email@id.com" 输入文件名为id_rsa 输入if ask口令 再次输入 运行eval "$(ssh-agent -s)" 打开配置文件:Open ~/.ssh/config 如果不存在,则创建为: 触碰~ / . ssh / config 现在打开配置文件,并在文件中添加以下行:

主机* AddKeysToAgent是的 UseKeychain是的 IdentityFile ~ / . ssh / id_rsa

关闭文件 为agent run命令添加ssh私钥。 ssh-add -K ~/.ssh/id_rsa . sh 现在复制ssh密钥为: Pbcopy < ~/.ssh/id_rsa.pub 去gitHub/BitBucket 点击管理帐户 点击SSH键 删除现有密钥 点击添加键 粘贴复制的密钥。

其他回答

对我来说,问题是使用sudo:

sudo git克隆git@github.com:userName/repo.git导致上述错误。

所以为了解决这个问题,我咀嚼了我试图克隆到的文件夹

sudo chown -R $USER:$USER /var/www/iqge.org/html

然后用这个 git克隆git@github.com:userName/repo.git was successfully done

我刚刚在设置我当前的项目时遇到了这个问题,上面的解决方案都不起作用。所以我试着用命令ssh -vT git@github.com查看调试列表上到底发生了什么。我注意到我的私钥文件名不在列表中。因此,将私钥文件名重命名为'id_rsa'就可以了。希望这能有所帮助。

SourceTree for Windows case

如果你在Windows上使用SourceTree,你需要使用PuTTyGen创建一个新的keypair

您应该插入到的顶部部分的ssh-rsa密钥

Github => Profile=> Settings => SSH and GPG keys => Add Key

然后保存私钥并将其添加到Pageant(它与SourceTree一起运行)

这是所有

Windows上的另一种可能性,在这些答案中都没有涉及,git或github文档中也没有涉及故障排除:

Git使用的openssh可执行文件可能与您认为的不同。

当我试图从github和ssh.dev.azure.com克隆或拉时,我收到了权限拒绝(公钥)错误,我遵循了所有的说明,并验证我的SSH密钥被正确设置(从SSH的立场)使用SSH -vT git@github.com和SSH -vT git@ssh.dev.azure.com。并且仍然得到这些错误:

git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

我最终发现问题在于Git for Windows和Windows都有自己的openssh版本。这里有文档:https://github.com/desktop/desktop/issues/5641

我依赖于Windows的ssh-agent服务来存储我的ssh密钥密码,所以git(使用它的单独版本的openssh)无法读取我的私钥。我认为这是一个错误,这个错误信息被使用-它是误导性的。

解决方案是:

git config --global core.sshCommand "'C:\Windows\System32\OpenSSH\ssh.exe'"

或者在~/.gitconfig中:

[core]
    sshCommand = 'C:\\Windows\\System32\\OpenSSH\\ssh.exe'

也许git很快就会修复这个问题,但这已经是我第二次在这个问题上浪费时间了。

在你的电脑的任何地方新建一个文件夹(比如在桌面上) 移动到新文件夹,打开git bash。

&在bash中编写以下代码:

$ git init $ git远程添加原点https://github.com/YOUR_GITHUB_HANDLER/YOUR_REPO_NAME.git $ git拉源主

(无论文件是否被拉出,都要查看新文件夹)

如果文件被删除,则首先删除旧文件夹(发生上述错误的文件夹)中的所有文件/文件夹,包括.git文件夹

&从新文件夹中复制所有文件,包括.git,并将其粘贴到出现上述错误的旧文件夹中。

这将为您获取远程回购。

如果你想获取远程回购而不删除你在本地所做的新更改,那么只需要复制并粘贴我们的新.git文件夹

现在你可以使用$ git push origin master了