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)。致命的: 对端异常挂机

324012 次浏览

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

如果你在电脑上安装了git,这是一个很好的选择:

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

在我的例子中,我必须为另一个用户设置公钥,因为我已经为我的主要用户设置了公钥。一旦我切换用户并执行上面链接中的命令,我就能够毫无问题地为我的测试服务器执行设置。

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

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

更准确地说,这个链接应该是有帮助的

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

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

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

在Ubuntu中,这是完美的。

我今天也有这个问题。 解决方案是设置“ssh密钥”。 点击下面的url,按照步骤,然后你将解决它

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

您需要设置SSH密钥。

这个GitHub页面解释了如何生成密钥。

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

我遇到过这个问题,但上面的解决方案都不起作用。我可以克隆和取回,但不能推。最终,我发现问题是在我的.git/config中的url,它应该是:

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

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

我花了很长时间在教程中找到了解决方案。

我遵循这个链接的github教程-> https://help.github.com/articles/error-permission-denied-publickey,我能够在每一步连接。 但是当我试图Git push -u origin master时,我得到了这个错误:

权限被拒绝(publickey)。致命的:无法从远程读取 库。< / p >

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

这就是我如何修复它!! 使用终端转到项目目录并检查

$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/

添加公钥是解决方案。用于生成ssh密钥:https://help.github.com/articles/generating-ssh-keys有分步指令。

但是,如果key没有以正确的方式生成,问题可能会持续存在。 我发现这也是一个有用的链接:https://help.github.com/articles/error-permission-denied-publickey

在我的情况下,问题是我在不使用sudo的情况下生成ssh-key,但当使用git命令时,我需要使用sudo。 上面链接中的评论“如果你在没有sudo的情况下生成SSH密钥,那么当你尝试使用像sudo git push这样的命令时,你将不会使用你生成的SSH密钥”帮助了我 所以,解决方案是我必须使用sudo与密钥生成命令和git命令。 或者对于其他人来说,当他们在任何地方都不需要sudo时,不要在两个步骤中的任何一个步骤中使用它。(密钥生成和git命令).

如果你使用的是Mac,解决这个问题的一个快速方法是注销OSX应用程序,然后重新登录。

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

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

(解释:以超级用户身份运行命令与以用户身份运行命令使用的公钥不同。因此,Github拒绝了这个连接。)

这个解决方案需要一个已经设置好的SSH密钥:https://help.github.com/articles/generating-ssh-keys

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

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

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

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

ssh-add ~/.ssh/id_rsa

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

鉴于这里的答案都不适合我,我终于找到了我的问题连接到Bitbucket(或Github,在这种情况下不重要)ssh -vT git@bitbucket.org。

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

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

解决方案是将这个添加到.ssh/config:

Host *
PubkeyAcceptedKeyTypes +ssh-dss

这优雅地将ssh-dss密钥类型附加到所有现有的可接受的公钥类型,在此之后,git现在可以毫无问题地ssh进入Bitbucket。

我的问题是,每当我在mac终端上输入ssh-keygen时,我都试图给我的ssh密钥具体的名字

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

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

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

成功的!希望这能有所帮助。

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

在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推送将在不同的帐户上工作。

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

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

生成新的SSH密钥并将它们添加到我的Github帐户解决了我的问题。 您可以查看这个页面了解更多细节。GitHelp . < / p >

您可以尝试将连接类型从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

之后,你可以尝试不带publickey的git pull