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

62 git

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

git push origin master
Run Code Online (Sandbox Code Playgroud)

我懂了

Permission denied (publickey).
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)

那么,怎么了?

tut*_*uju 73

找到了!

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

您可以通过将GIT_SSHenv变量设置为plink.exe路径来完成此操作:

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

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

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

图片来源:此博客文章中的原始解决方案

  • 宾果,这就是我想要的.:-)您可以通过控制面板>系统>高级系统设置>环境变量将这些值设置为永久环境变量. (2认同)

G S*_*hah 45

我能够解决此问题如下:

当你这样做时:

ssh-keygen -t rsa
Run Code Online (Sandbox Code Playgroud)

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

平台是Win7和msysgit.

  • 对于Windows和msysgit:如果为键使用自定义文件名(而不是默认的`id_rsa`),那么请确保将其添加到`〜/ .ssh/config`:`IdentityFile~/.ssh/customname`(替换`customname`,带有你的密钥的名字,没有`.pub`).这在Linux环境中似乎不太必要. (15认同)

Joh*_*ika 36

这是我用来实现这一目标的分步指南.

平台:Windows 7

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

在安装过程中,接受所有默认选项,除非出现"选择组件"选项.出现此信息时,选择"Git Bash Here"选项.虽然这不是必需的,但它在Windows资源管理器中工作时添加了一个很好的上下文菜单,我发现它非常有帮助.

在此输入图像描述

一旦安装了msysgit,也将安装Git Bash.用以下两种方式之一打开Git Bash:

  • 单击Windows开始键,然后开始键入Git Bash
  • 或者,右键单击某处(例如您的桌面)并选择Git Bash Here.此选项仅在安装了"Git Bash Here"上下文菜单时可用.

在Git Bash的命令窗口中,输入:

$ ssh-keygen -t rsa
Run Code Online (Sandbox Code Playgroud)

当要求输入文件名时,只需接受默认值即可.出现提示时选择一个强密码,现在应保存您的公钥.您的屏幕应如下所示:

在此输入图像描述

在记事本中打开公钥文件.该文件应驻留在此处:

C:\Users\{username}\.ssh\id_rsa.pub
Run Code Online (Sandbox Code Playgroud)

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

https://github.com/settings/ssh

选择"添加SSH密钥",输入有用的"标题"并将内容粘贴到"密钥"文本区域中.

为了简化您的生活,您可以使用SSH代理保存密码,这样您就不需要记住它.为此,请将其键入Git Bash:

$ eval `ssh-agent -s`
$ ssh-add ~/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)

系统会提示您输入密码.如果一切顺利,您的身份将被添加.注意:一旦关闭shell,就会忘记这个密码.我不确定如何在会话中坚持这一点,但也许有人可以提供帮助?

要测试一切正常,请将其输入Git Bash:

$ ssh -T git@github.com
Run Code Online (Sandbox Code Playgroud)

你应该看到一个'成功'的meesage.

资料来源:

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
Run Code Online (Sandbox Code Playgroud)

/sf/answers/1249401541/

  • 我做了这里描述的一切.密码保存除外.但它不起作用.我仍然得到"Permission denied(publickey)".在命令"ssh -T git@github.com"之后.我不知道哪里可能有问题. (3认同)

Vee*_*eti 11

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


Tas*_*sha 7

使用Windows 8设置您的ssh和Github

  1. 如果它显示"Permission denied(publickey)",则必须为密钥输入密码.不要只想按下输入...这对我有用...我花了五个小时才意识到,按下输入让OpenSSH觉得你的钥匙太公开所以这就是为什么它拒绝你去下一步.

  2. 如果它说"主机的真实性'github.com(203.232.175.90)'无法建立." 然后,您将必须完成此处显示的过程:[Google](https://help.github.com/articles/error-permission-denied-publickey.)

转到"验证公钥是否附加到您的GitHub帐户"部分.您想从说明帐户的部分开始.(我假设你已经拥有一个帐户.

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

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

并注意保存密钥的文件.不要只按回车..我的一个显示"(//.ssh/id_rsa)"我必须输入"/.ssh/id_rsa"以确保它在正确的目录中.

您应该能够在命令行中键入ssh.如果你不能这样做,你将不得不将它添加到你的路径.