权限被拒绝(publickey)在Windows 7上使用git的错误

当我想用这个命令推送到github时

git push origin master 

我懂了

 Permission denied (publickey). fatal: The remote end hung up unexpectedly 

那么,怎么了?

find了!

显然,你可以使用plink作为主要的ssh客户端,只需将你的密钥加载到pageant (如果你像我一样,你已经做了):

您可以通过将GIT_SSH envvariables设置为plink.exepath,如下所示:

设置GIT_SSH = C:\ Program Files \ PuTTY \ plink.exe

或者,你可以使用TortoiseGit的plink:

设置GIT_SSH = c:\ Program Files \ TortoiseGit \ bin \ TortoisePLink.exe

信用 :从这个博客文章采取的原始解决scheme

我能够解决这个问题如下:

当你这样做时:

 ssh-keygen -t rsa 

它会提示您(可选)input保存生成的密钥的文件名。 指定一个文件名浪费了我的整个一天! 第二天,我让它使用默认的文件名和问题(S)消失了! 想像!!

平台是Win7和msysgit。

这是一个分步指南,我曾经使这个工作。

平台:Windows 7

http://msysgit.github.io/安装msysgit

在安装过程中,接受所有默认选项,除非出现“select组件”选项。 出现这种情况时,select'Git Bash here'选项。 虽然这不是必须的,但是在Windows资源pipe理器中工作时,它会添加一个不错的上下文菜单,我发现这非常有帮助。

在这里输入图像说明

一旦msysgit安装Git Bash也将被安装。 打开Git Bash有两种方法之一:

  • 单击Windows开始键,然后开始inputGit Bash
  • 或者,右键单击某处(例如桌面),然后selectGit Bash Here。 此选项仅在安装“Git Bash Here”上下文菜单时可用。

在Git Bash的命令窗口中input:

 $ ssh-keygen -t rsa 

当被要求input文件名时,只接受默认值。 提示时select一个强大的密码,现在应该保存您的公钥。 你的屏幕应该是这样的:

在这里输入图像说明

在记事本中打开公钥文件。 该文件应驻留在这里:

 C:\Users\{username}\.ssh\id_rsa.pub 

将文件中的所有内容复制到剪贴板,然后转到GitHub的SSH设置页面:

https://github.com/settings/ssh

select“添加SSH密钥”,input一个有用的“标题”,并将内容粘贴到“密钥”文本区。

为了简化您的生活,您可以使用SSH代理保存您的密码,以便您不必记住它。 为此,在Git Bash中input:

 $ eval `ssh-agent -s` $ ssh-add ~/.ssh/id_rsa 

系统会提示您input您的密码。 如果一切顺利,你的身份将被添加。 注意:一旦你closures你的shell,这个密码就会被忘记。 我不知道如何使这个持续不断的会议,但也许有人可以帮助?

为了testing一切正常,将其input到Git Bash中:

 $ ssh -T git@github.com 

你应该看到一个“成功”的麻烦。

资料来源:

https://help.github.com/articles/generating-ssh-keys/

https://help.github.com/articles/working-with-ssh-key-passphrases/

 explanation on why eval `ssh-agent -s` should be used instead of just ssh-agent -s 

https://stackoverflow.com/a/17848593/188740

您是否为自己生成了一个SSH密钥并将其添加到您的Github帐户? 他们在这里有一个指导。

使用Windows 8来设置你的SSH和Github

  1. 如果它说“权限被拒绝(公钥)”,你将不得不为你的密钥input一个密码。 不要被诱惑只是按下input…这是为我工作…我花了五个小时才意识到,按进入让OpenSSH觉得你的钥匙太公开,所以这就是为什么它是拒绝你去下一步。

  2. 如果说“主机'github.com(203.232.175.90)的真实性'不能build立。 那么你将不得不经过这里显示的过程:[谷歌]( https://help.github.com/articles/error-permission-denied-publickey 。)

转到“validation公钥已连接到您的GitHub帐户”部分。 你想从说账户的部分开始。 (我假设你已经有一个帐户。

另外,你想要在C:\ RailsInstaller \ Git.ssh中,当我做'dir'时,我注意到我有'。','..','known_hosts'。 我必须通过执行以下操作来获得新密钥(我在Github网站上find了这个密钥):

“ssh-keygen -t rsa -C”your_email@example.com“#使用提供的电子邮件作为标签创build一个新的ssh密钥#生成公钥/私钥rsa密钥对<#input要保存密钥的文件/c/Users/you/.ssh/id_rsa):[按回车]“

并注意钥匙将被保存的文件。 不要只按回车..我的一个显示“(//.ssh/id_rsa)”我不得不键入“/.ssh/id_rsa”,以确保它在正确的目录。

你应该可以在命令行inputssh。 如果你不能这样做,你将不得不把它添加到你的path。

我通过添加一个系统环境variables来解决类似的问题。 关键是我指向cmd文件夹中的git.exe

名字: GIT
值: C:\ Program Files(x86)\ Git \ cmd \ git.exe

您的heroku键可能有问题。 尝试:

 heroku keys:add 

类似的问题在这里: Heroku Git – 致命的:远端意外挂断

如果您已经生成了密钥并且具有默认名称,则问题可能出现在缺less的环境variables中。

在Windows 7上,右键单击“我的电脑”,然后转到属性。 点击高级属性并点击环境variablesbutton。 在那里添加一个用户环境variables

 Name: HOME Value: %USERPROFILE% 

问题可能与ssh.exe在PATH环境variables中的顺序有关。

在我的情况下,在C:\ Program Files(x86)\ git和我的C:\ cwgwin目录中都有一个ssh.exe。 当我在我的Git Bash中,一切正常(在git目录中使用ssh),但是当我在我的命令提示符中使用的是我的cygwin目录中的ssh。

当我试图访问github时,无法使用我的私钥find.ssh文件夹,因为这个密钥没有连接到命令提示符使用的ssh(即C:\ cygwin之一),这就是为什么我得到权限被拒绝的错误。

我所做的是重命名(或删除)我的C:\ cygwin目录中的git.exe和ssh.exe,并确保C:\ Program Files(x86)\ git出现在PATH顺序中的C:\ cwgwin之前。

这是一个具有相同错误签名的特定问题的解决scheme。 这是我犯的错误,做起来很容易。 基本上,而不是这样做

  git remote add origin git@github.com:myusername/myrepo.git 

我做了这个(注意错字)

  git remote add origin get@github.com:myusername/myrepo.git 

http://www.celticwolf.com/blog/2011/02/08/git-permission-denied-publickey/

这是Windows 7的默认输出。

 c:\test\app>ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (//.ssh/id_rsa): Could not create directory '//.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: open //.ssh/id_rsa failed: No such host or network path. Saving the key failed: //.ssh/id_rsa. 

而不是命令提示符git是按照http://help.github.com/win-set-up-git/使用; ?

我有一个类似的问题:

我使用git bash在某个目录中创build了“redssh”和“redssh.pub”。 没有权限…

但是,“id_rsa.pub”和“id_rsa”出现在:C:/Users/myName/.ssh/

将id_rsa.pub内容复制到github

我是一个总的新手与Git,并遵循一些网站上的安装说明,并获得权限被拒绝(公钥)错误。

我按照说明生成了RSA密钥对(ssh-keygen -t rsa)。 这工作得很好,但我仍然收到错误。 我没有意识到的是,你必须真正进入GIT网站(github.com),注册并在他们的网站上input密钥。

我希望这能帮助另一个穷人。

干杯!

我有类似的胜利8。

非常简单的错误,我做了:我已经在git hub帐户中创build公钥,所以y键不匹配。

解:

  • 从github账户中删除ssh文件夹和密钥,并重新执行该过程

1) ssh-keygen -t rsa -C "your mail address"

2) ssh -T git@github.com

我发现我的问题是,我使用的任何版本的ssh-keygen都创build了错误的文件名的文件…最初创build的文件%USER_HOME%.ssh \ ida_rsa和ida_rsa.pub,但git期望它们是id_rsa和id_rsa.pub。

我通过运行git bash解决了这个问题,然后运行ssh-keygen