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

我按照以下说明上传了一个项目。

全局设置:

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)。 致命的:远端意外挂断

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

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

(解释:以超级用户身份运行一个命令不能像用户一样运行相同的公共密钥,因此Github拒绝连接。)

此解决scheme需要已经build立SSH密钥: https : //help.github.com/articles/generating-ssh-keys

我不得不把我的公钥添加到github。 https://help.github.com/articles/generating-ssh-keys

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

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

更确切地说,这个环节应该有所帮助

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

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

 ssh-add ~/.ssh/id_rsa 

或者你创build你的rsa密钥对的地方。

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

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

在Ubuntu这个完美的作品。

经过很长时间的教程,我得到了一个解决scheme。

我遵循这个链接上的github教程 – > https://help.github.com/articles/error-permission-denied-publickey ,我能够在每一步连接。 但是当我试图git推-u起源高手,我得到这个错误:

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

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

多数民众赞成我是如何解决它! 转到使用terminal项目目录,并检查出来

 $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目录下的configuration文件:

 vi .git/config 

并configuration线路

 [remote "origin"] url = ssh://git@github.com/yourGithubUserName/yourRepo.git fetch = +refs/heads/*:refs/remotes/origin/ 

在我的情况下,我不得不为另一个用户设置公钥,因为我已经有一个用于我的主用户。 一旦我切换用户并执行上述链接中的命令,我就能够毫无问题地为我的testing服务器执行安装程序。

我有这个问题,但以上解决scheme都没有工作。 我可以克隆和获取,但不能推。 最终,我发现问题出在我的.git/configurl中,应该是:

 git@github.com:<username>/<project> 

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

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

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

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

解决的办法是把这个添加到.ssh / config:

 Host * PubkeyAcceptedKeyTypes +ssh-dss 

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

我的问题是,当我在我的Macterminal上inputssh-keygen ,我试图给我的ssh密钥一个“ SPECIFIC NAME”

我通过只留下“ssh-keygen”generate = id_rsa这个名字来解决这个问题。 你最终会在你的.ssh文件夹中有两个密钥,你的私钥是id_rsa ,而你的公钥是id_rsa.pub 。 然后,我将id_rsa.pub的代码复制并保存到我的GitHub帐户设置中,就是这样。 问题解决了。

如果你在你的电脑上安装了git,

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

添加公钥是解决scheme。为了生成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密钥。 帮助过我。

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

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

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

此外,我想有一种方法来“告诉”混帐使用默认的.ssh文件夹在主文件夹中,但仍然需要弄清楚如何。

对我来说,它是这样工作的:

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

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

在Windows商店使用Ubuntu的

windows子系统为linux

,你的git push会在不同的账号上工作。

您需要设置SSH密钥。

这个GitHub页面介绍了如何生成密钥。

如果你有一个现有的密钥,你复制$HOME/.ssh/id_rsa.pub并粘贴到GitHub SSH设置页面 。

如果您使用Mac,快速解决此问题的方法是退出OSX应用程序并重新login。

我的问题是,它没有在我的私钥上使用密码。

希望能帮助别人。

我今天也有这个问题。 解决scheme是设置你的“SSH密钥”。 点击下面的url,按照步骤操作,然后你就可以清除它。

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

我尝试过提到的解决scheme,但仍然失败。 我发现终于在这里工作的解决scheme – 删除然后重新添加远程链接

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

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

成功了! 希望这可以帮助。