Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ssh克隆无法与github一起使用_Git_Github - Fatal编程技术网

ssh克隆无法与github一起使用

ssh克隆无法与github一起使用,git,github,Git,Github,我是Git和GitHub的新手 我创建了一个新的存储库,并尝试在本地计算机上进行克隆 它适用于https和git只读URL。也就是说,以下措施效果良好: git克隆https://github.com/npsabari/testrepo.git git克隆git://github.com/npsabari/testrepo.git 但是当我尝试git clone时git@github.com:npsabari/testrepo.git,它不起作用。它给出了以下错误消息: Cloning in

我是Git和GitHub的新手

我创建了一个新的存储库,并尝试在本地计算机上进行克隆

它适用于https和git只读URL。也就是说,以下措施效果良好:

  • git克隆https://github.com/npsabari/testrepo.git
  • git克隆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
然后我尝试了
sshgit@github.com
,但我发现了错误:

"Permission denied (publickey)."
而不是欢迎信


我该怎么做才能解决这个问题?错误的原因是什么?

错误的原因是您没有将公钥(~/.ssh/id_rsa.pub)上载到GitHub。将它添加到您的帐户中(您可以通过github提供的web面板执行此操作),它将起作用。

实际上,首先您应该生成ssh密钥,然后将它们保存到您的帐户中

有关更多详细信息,请参阅以下链接


根据GitHub,与错误的SSH配置有关。请遵循指示并进行相应的检查。

我只经历过一次由
ssh-keygen
生成的密钥被破坏。检查私钥和公钥文件,它们具有正确的语法、长度等

它。只是没有。工作


在同一台机器上,我重新生成了一对密钥。这最后让我通过ssh连接到github。

我想补充一点,如果您需要使用
sudo
,它可能会产生干扰,因为ssh密钥没有绑定到该用户。您可能希望在使用git之前而不是之后编辑权限。

有两种克隆方法。
1。SSH

2。HTTPS

在我的例子中,第一个给出了与您类似的问题,但随后我尝试通过运行以下命令来使用
HTTPS
方式。
git克隆https://xyz

在此之前,运行此命令
git remote-v
。这应该显示
1。git url(获取)

2。git url(推送)


如果您在运行命令时看到这两个选项,它会告诉您您获得了
push
权限以及
fetch
权限。配置并正确设置代理之后,如果仍然发现问题,我解释的这个解决方案应该可以工作。如果您的
SSH公钥和私钥都是错误的,那么您必须先修复它,然后再进行其他操作

您可以按照以下文档将密钥添加到
ssh代理

或者您可以运行以下命令来临时执行它


ssh代理bash-c'ssh add~/.ssh/github\u rsa;git克隆git://github.com/npsabari/testrepo.git“

您是否生成、更新并确认了SSH密钥?否!我不知道如何生成、更新或确认SSH密钥。今天我才开始使用git。。那么,如何做到以上几点呢?请看下面我的答案,它包含一个到教程的链接(第三个)如何做到这一点?而且我没有在~/.ssh文件夹中找到文件id_rsa.pub。如何生成它?这个问题解决了!我还有一个疑问,如果我使用其他机器克隆我的存储库,我是否需要在该机器中生成SSH密钥并将其添加到我的github帐户?或者我只能从一台机器上进行SSH…?最好为每台机器生成一个密钥。您可以将一个密钥从一台机器复制到另一台机器,但不建议这样做,因为一旦一台机器被破坏,使用相同密钥的所有机器都将被删除。中间的解决方案是将一把钥匙放在U盘上,并使用标志来告知您想要使用它们。然而,更好的方法是坚持每台机器使用一个密钥:DSabari和@MihaiMaruseac事实上,我试图将密钥从一个EC2实例复制到另一个实例,但失败了。我想只有新生成的密钥才有效?不,复制密钥也有效。这就是我在切换个人电脑时经常做的事情,它总是工作。虽然这说明了问题所在,但没有说明如何解决问题;这似乎是一个“公主在另一座城堡”的回答