2012-07-20 34 views
13

我是Git和GitHub的新手。ssh clone不适用于github

我创建了一个新的存储库,并试图在我的本地机器上克隆。

它适用于https和git-readonly URL。也就是说,下面工作得很好:

  • git clone https://github.com/npsabari/testrepo.git
  • git clone git://github.com/npsabari/testrepo.git

但当我git clone [email protected]:npsabari/testrepo.git,没有奏效。它给了以下错误消息:

Cloning into 'testRepo'... 
Permission denied (publickey). 
fatal: The remote end hung up unexpectedly 

然后我试图ssh [email protected],但我得到了错误:

"Permission denied (publickey)." 

,而不是欢迎信息。

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

+4

您是否生成,更新并确认了SSH密钥? – 2012-07-20 19:18:04

+0

不!我不知道如何生成或更新或确认SSH密钥。今天只有我开始使用git ..那么,如何做到以上所有? – sabari 2012-07-20 19:20:09

+0

看到我的答案在下面,它包含一个链接(第三)到教程 – 2012-07-20 19:21:33

回答

16

按照GitHub上help,该error you're getting是关系到错误的SSH配置。请按照setting up SSH for GitHub的指示进行检查。

+1

解决了!我还有一个疑问,如果我使用其他机器克隆我的存储库,是否需要在该机器上生成SSH密钥并将其添加到我的github帐户?或者我只能从一台机器SSH? – sabari 2012-07-20 19:33:29

+1

最好为每台机器生成一个密钥。 您可以将一台机器从一台机器复制到另一台机器,但不建议这样做,因为只要一台机器受到危害,所有使用相同密钥的机器都会受损。 一个中间解决方案将是在USB存储盘上有一个密钥并使用标志来告诉你想要使用它们。然而,更好的是坚持每台机器一个键:D – 2012-07-20 19:47:54

+0

非常感谢提示! – sabari 2012-07-20 19:52:15

2

错误的原因是您没有上传到GitHub的公钥(〜/ .ssh/id_rsa.pub)。将它添加到你的帐户(你可以通过github提供的web面板来完成),它会起作用。

+0

如何做到这一点?并且我不保存〜/ .ssh文件夹中的文件id_rsa.pub。如何生成它? – sabari 2012-07-20 19:21:41

+0

ssh-keygen -t rsa – Lusitanian 2012-07-20 21:17:22

1

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

它。只是。没有。工作。

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