我是Git和GitHub的新手。
我创建了一个新的存储库,并尝试在我的本地计算机上克隆。
适用于https和git-readonly网址。也就是说,以下工作正常:
git clone https://github.com/npsabari/testrepo.git
git clone git://github.com/npsabari/testrepo.git
但是当我尝试git clone git@github.com:npsabari/testrepo.git
时,它没有用。它给出了以下错误消息:
Cloning into 'testRepo'...
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
然后我尝试了ssh git@github.com
,但我得到了错误:
"Permission denied (publickey)."
而不是欢迎讯息。
我该怎么做才能解决这个问题?错误的原因是什么?
答案 0 :(得分:17)
根据GitHub help,error you're getting与错误的SSH配置有关。请按照setting up SSH for GitHub的指示进行检查并进行相应检查。
答案 1 :(得分:3)
错误的原因是您没有将公钥(〜/ .ssh / id_rsa.pub)上传到GitHub。将它添加到您的帐户(您可以通过github提供的Web面板执行此操作),它将起作用。
答案 2 :(得分:2)
我经历过这种情况 - 只有一次 - ssh-keygen
生成的密钥被破坏了。检查私钥和公钥文件,它们具有正确的语法,长度,等等。
它。只是。没有。工作
在同一台机器上,我重新生成了一个密钥对。这最终让我通过ssh连接到github。
答案 3 :(得分:1)
答案 4 :(得分:0)
我想补充一点,如果你需要使用sudo
,它可能会干扰,因为SSH密钥没有绑定到该用户。您可能希望在使用git
之前编辑权限,而不是之后。
答案 5 :(得分:0)
有两种克隆方法。
1. SSH
2. HTTPS
就我而言,第一个问题与您遇到的问题类似,但是后来我尝试通过运行以下命令来使用HTTPS
方式。
git clone https://xyz
在此之前,请运行此命令git remote -v
。这应该显示
1. git-url(fetch)
2. git-url(push)
如果您在运行命令时都看到了这两者,则表明您拥有push
的权利以及fetch
的权利。配置好并正确设置代理后,如果仍然发现问题,我已经解释过的此解决方案应该可以使用。如果您的SSH public key and private key
错误,则必须先解决此问题。
答案 6 :(得分:0)
您可以按照以下文档将密钥添加到ssh-agent
https://help.github.com/en/articles/connecting-to-github-with-ssh
或者您可以运行以下命令来临时执行
ssh-agent bash -c 'ssh-add ~/.ssh/github_rsa; git clone git://github.com/npsabari/testrepo.git'