我用的是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没有密码,但仍然错误。
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很快就会修复这个问题,但这已经是我第二次在这个问题上浪费时间了。
请注意(至少对于某些项目),您必须拥有一个带有ssh密钥的github帐户。
查看身份验证代理中列出的密钥(ssh-add -l)
(如果你没有看到任何,用ssh-add /path/到/your/key添加一个你现有的密钥(例如:ssh-add ~/.ssh/id_rsa))
(如果你没有任何密钥,首先创建一个。参见:http://rcsg-gsir.imsb-dsgi.nrc-cnrc.gc.ca/documents/internet/node31.html或谷歌ssh-keygen)
要验证您有一个与您的github帐户相关联的密钥:
访问:https://github.com/settings/ssh
您应该至少看到一个键的哈希键与您刚才键入ssh-add -l时看到的某个哈希键相匹配。
如果没有,添加一个,然后再试一次。