GitHub:权限被拒绝(publickey)。致命:远程端意外挂断

时间:2010-09-01 10:31:45

标签: git github public-key

我已按照以下说明上传项目。

全球设置:

 Download and install Git
  git config --global user.name "Your Name"
  git config --global user.email tirenga@gmail.com
  Add your public key


Next steps:

  mkdir tirengarfio
  cd tirengarfio
  git init
  touch README
  git add README
  git commit -m 'first commit'
  git remote add origin git@github.com:tirenga/tirenga.git
  git push origin master

但是我收到了这个错误:

  

权限被拒绝(publickey)。致命:   远程端意外挂断了

23 个答案:

答案 0 :(得分:124)

我必须将我的公钥添加到github。 https://help.github.com/articles/generating-ssh-keys

答案 1 :(得分:28)

是的,这是一个公钥问题。 我是 windows 用户,下面的页面可以帮助我解决此问题。

  

http://help.github.com/win-set-up-git/

更确切地说,此链接应该有用

  

https://help.github.com/articles/error-permission-denied-publickey

答案 2 :(得分:28)

创建RSA密钥对后,必须使用以下命令将其添加到SSH:

ssh-add ~/.ssh/id_rsa

或创建rsa密钥对的任何地方。

答案 3 :(得分:24)

对我来说,问题是通过sudo执行克隆。

如果您克隆到具有用户权限的目录(/ home / user / git),它将正常工作。

(说明:以超级用户身份运行命令不能使用与用户运行命令相同的公钥。因此Github拒绝连接。)

此解决方案需要设置SSH密钥:https://help.github.com/articles/generating-ssh-keys

答案 4 :(得分:18)

使用您的用户名和存储库名称键入以下命令:

git clone https://github.com/{user name}/{repo name}

在Ubuntu中,这非常有效。

答案 5 :(得分:16)

我在教程中经过很长时间后得到了解决方案。

我在此链接上关注了github教程 - > https://help.github.com/articles/error-permission-denied-publickey我能够在每一步都进行连接。 但当我试图 git push -u origin master 时,我收到了这个错误:

  

权限被拒绝(publickey)。致命:无法从远程读取   库中。

     

请确保您拥有正确的访问权限

多数民众赞成我如何修复它!! 使用终端转到项目目录并查看

$git remote -v

你会得到这样的东西:

origin  ssh://git@github.com/yourGithubUserName/yourRepo.git (fetch)
origin  ssh://git@github.com/yourGithubUserName/yourRepo.git (push)

如果您使用的是 git@github.com 之外的任何内容,请键入以下命令打开git目录中的配置文件:

vi .git/config

并配置线

[remote "origin"]

url = ssh://git@github.com/yourGithubUserName/yourRepo.git

fetch = +refs/heads/*:refs/remotes/origin/

答案 6 :(得分:6)

在我的情况下,我不得不为另一个用户设置公钥,因为我已经有一个用于我的主用户。一旦我切换用户并执行上面链接中的命令,我就可以毫无问题地为我的测试服务器执行设置。

答案 7 :(得分:5)

我遇到了这个问题,但上述解决方案都没有奏效。我可以克隆和获取但无法推送。最后,我发现问题出在我url的{​​{1}}中,应该是:

.git/config

(不是git@github.com:<username>/<project> ssh://github.com/<username>/<project>.git)。

答案 8 :(得分:5)

鉴于这里没有任何答案对我有用,我终于通过ssh -vT git@bitbucket.org跟踪了我与Bitbucket(或Github,在这种情况下并不重要)的问题。

在我的情况下,失败是由于使用DSA密钥而不是RSA,显然我的SSH客户端不再允许这样做。

  

debug1:在PubkeyAcceptedKeyTypes中没有跳过ssh-dss键/c/Users/USER/.ssh/id_dsa

解决方法是将其添加到.ssh / config:

Host *
    PubkeyAcceptedKeyTypes +ssh-dss

这优雅地将ssh-dss密钥类型附加到所有现有的公共密钥类型,在完成之后,git现在可以ssh到Bitbucket没问题。

答案 9 :(得分:3)

我的问题是每次我在mac终端上输入std::is_final<T>时,我都试图给我的ssh密钥一个特定名称

我通过保留“ssh-keygen”生成的名称= ssh-keygen来解决问题。您最终会在Mac上的.ssh文件夹中使用2个密钥,id_rsa(这是您的私钥)和id_rsa,这是您的公钥。然后我将代码从id_rsa.pub复制并保存到我的GitHub帐户设置中,就是这样。问题解决了。

答案 10 :(得分:2)

如果您在计算机上安装了git,这是一个不错的选择:

http://help.github.com/mac-set-up-git/

答案 11 :(得分:1)

您可以尝试将类型连接从ssh更改为https。

  1. nano project_path/.git/config
  2. git@github.com:username/repository.git替换为https://username@github.com/username/repository_name.git
  3. 保存文件ctrl + o

之后,您可以在没有公钥的情况下尝试git pull

答案 12 :(得分:1)

对我来说,它的工作原理如下:

在GitHub中,我将ssh链接更改为https,然后提供以下命令:

$ git init
$ git remote add origin https:...
$ git add .
$ git commit -m "first commit"
$ git push origin master

答案 13 :(得分:1)

在Windows中运行SSH或Git Clone时,我遇到了类似的问题。以下结果有助于解决我的问题:

  • 当您运行“rhc setup”或其他ssh方法生成ssh密钥时,它将在您的主文件夹的.ssh文件夹中创建私钥文件id_rsa,默认为C:\ User \ UserID
  • Git for windows在其安装目录中有自己的.ssh文件夹。当您运行git / ssh时,它将在此文件夹中查找私钥文件id_rsa
  • 通过将id_rsa从主文件夹.ssh文件夹复制到git安装目录中的.ssh文件夹来解决问题

另外,我认为有一种方法可以“告诉”git在主文件夹中使用默认的.ssh文件夹,但仍然需要弄清楚如何。

答案 14 :(得分:1)

添加公钥是解决方案。为了生成ssh密钥:https://help.github.com/articles/generating-ssh-keys有分步说明。

但是,如果未以正确方式生成密钥,则问题仍然存在。 我发现这也是一个有用的链接:https://help.github.com/articles/error-permission-denied-publickey

在我的情况下问题是我在不使用sudo的情况下生成ssh-key但是在使用git命令时我需要使用sudo。 以上链接中的这条评论“如果你生成没有sudo的SSH密钥,那么当你尝试使用像sudo git push这样的命令时,你将不会使用你生成的SSH密钥。”帮助了我。

所以,解决方案是我必须使用sudo来生成密钥生成命令和git命令。 或者对于其他人,当他们在任何地方都不需要sudo时,不要在任何两个步骤中使用它。 (密钥生成和git命令)。

答案 15 :(得分:0)

在Windows商店中使用ubuntu

  

windows子系统for linux

,您的git push将适用于不同的帐户。

答案 16 :(得分:0)

如果您使用的是linux机器,请检查

  • 你安装了Openssh
  • 如果你这样做,那么你有一个现有的公钥,否则你将不得不生成一个。
  • 是您的公钥添加到您的github帐户。

生成新的SSH密钥并将其添加到我的Github帐户解决了我的问题。 您可以查看此页面了解更多详情。 GitHelp

答案 17 :(得分:-1)

如果您正在使用Mac,解决此问题的一种快速方法是退出OSX应用并重新登录。

答案 18 :(得分:-1)

您需要设置SSH密钥。

This GitHub page解释了如何生成密钥。

如果您有现有密钥,请复制$HOME/.ssh/id_rsa.pub并将其粘贴到the GitHub SSH settings page

答案 19 :(得分:-1)

我的问题是它无法在我的私钥上使用密码短语。

希望能有所帮助。

答案 20 :(得分:-2)

我今天也有这个问题。 解决方案是设置“ssh密钥”。 点击下面的网址,按照步骤操作,然后你就可以了。

http://github.com/guides/providing-your-ssh-key

答案 21 :(得分:-3)

我尝试了所提到的解决方案,但仍然失败了。 我找到了最终为我工作的解决方案here - 删除然后重新添加远程链接

答案 22 :(得分:-4)

我在Windows上遇到了同样的问题。我从SSH切换到HTTPS并运行Git PUSH。

git push -u origin master
Username for 'https://github.com': <Github login email>
Password for <Github login>: xxx

成功!希望这有帮助。