github:没有支持的authentication方法可用
我使用github,并在我的笔记本电脑上成功添加和同步文件。
截至最近,我开始运行后“ PuTTY致命错误:断开连接:没有支持的身份validation方法 ”:
git pull起源大师(或推)
然而
ssh git@github.com返回正确的回应:错误:您好用户名! 您已经成功通过身份validation,但GitHub不提供closuresgithub.com的shell访问连接。
在github上挖掘我发现这个morcel:
没有支持的authentication方法可用您应该知道环境variablesGIT_SSH,如果ssh不适用于您,那么git将使用它来查找您的说ssh的客户端。 git安装可能使用plink.exe(通过GIT_SSH)来执行身份validation。 如果是这样,确保你有pageant.exe运行,并且你为github创build的密钥加载到它。 这提供了plink.exe的关键; 没有它,上述错误将会发生。
不知道什么plink.exe或peagant.exe是..以及ssh git@github.com似乎authentication正确的事实使我不知道这里最好的解决scheme是什么..我当然不想过分复杂我的设置,如果不必要。
你可以在你的主目录中创build一个名为“.profile”的文件,对我来说就是C:\ Users \ [user]
在该文件中,放入以下代码行:
GIT_SSH="/usr/bin/ssh.exe"
这将设置GIT_SSH环境variables来使用git附带的ssh客户端。
当您启动Git Bash命令行时,.profile脚本会被执行。
编辑:这是我的.profile。 在你第一次启动git命令提示符时,它会询问你的密码,然后从那时起将记住它,直到你重新启动你的计算机。 非常方便,所以你不必每次都想input密码。
SSH_ENV="$HOME/.ssh/environment" GIT_SSH="/usr/bin/ssh.exe" function start_agent { echo "Initializing new SSH agent..." /usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}" echo succeeded chmod 600 "${SSH_ENV}" . "${SSH_ENV}" > /dev/null /usr/bin/ssh-add; } # Source SSH settings, if applicable if [ -f "${SSH_ENV}" ]; then . "${SSH_ENV}" > /dev/null #ps ${SSH_AGENT_PID} doesn't work under cygwin ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || { start_agent; } else start_agent; fi
使用TortoiseGit
将TortoiseGit> Settings> Network> SSH Client设置为C:\Program Files (x86)\Git\bin\ssh.exe
或C:\Program Files\Git\usr\bin\ssh.exe
“…不知道什么plink.exe或peagant.exe是…”
既然你问:plink&pageant是PuTTY套件的一部分,它是一个支持Linux和Windows的SSH实现,在Windows上完全占统治地位。
SSH
安全shell(SSH)是用于保护数据通信的encryptionnetworking协议。 它在客户端 – 服务器体系结构中的不安全networking上build立安全通道,将SSH客户端应用程序与SSH服务器相连接。 常见的应用包括远程命令行login,远程命令执行,但任何networking服务都可以通过SSH进行安全保护。
如果你曾经使用过Telnet,就像这样(但更安全):它允许你远程访问Linux主机的bash shell(命令行)。
油灰
PuTTY是一款免费的开源terminal仿真器,串口控制台和networking文件传输应用程序。 它支持多种networking协议,包括SCP,SSH,Telnet,rlogin …
在Windows上,它是在SSH协议(以上)下远程访问Linux主机命令行的主要软件。 在Windows中,.exe扩展名用于可执行文件。 所以这些有关plink.exe&pageant.exe的注释可能不适用于Linux 。 包括PuTTY
Plink :PuTTY后端的命令行界面
Pageant :PuTTY,PSCP,Plink的SSHauthentication代理
从( http://en.wikipedia.org/wiki/Secure_Shell#Key_management )
当公共密钥存在于远程端时,并且本地端上存在匹配的私人密钥时,不再需要input密码…为了额外的安全性,私钥本身可以用密码locking。
所以github托pipe在Linux机器上,并使用SSH来保护连接。 SSH使用密码或密钥进行身份validation,许多主机(github?)只能使用密钥进行身份validation。 你设置显然是试图用密钥进行身份validation。 密钥和主机不是一对一的:对于相同的主机和/或两个主机可以有两个密钥用于同一个密钥,因此需要对它们进行pipe理。 如果您在Windows中,那么您的SSH会话可能通过plink访问,而您的密钥可能由Pageantpipe理。
每次载入Pageant时,导入您需要的密钥。 如果您遵循了“导入您的密钥”的指南,并看到它的工作,但现在不起作用,请参阅第9章:使用Pageant进行身份validation 。
最后一个提示,如果你在Windows上:你可能有不同的工具安装PuTTY套件的多个实例。 TortoiseGit,例如,安装它自己的。
我遇到过这个问题,因为我的GIT_SSH
指向了Plink.exe
的TortoiseSVN版本。 我改变它指向TortoiseGit版本,重新启动cmd,它的工作。
我记不清了,但TortoiseSVN版本可能是32位版本,而TortoiseGit版本是64位(位于Program Files
,而不是Program Files (x86)
)。
仔细检查你的GIT_SSH
env var。
我更喜欢使用正常的cmd.exe
git(当然在Console2中)
我的问题是,我试图使用我的github用户名。 显然,当使用Github (或者它是一个Git的东西?) ,如果您使用基于密钥的身份validation,您需要将您的用户名设置为git
。
我不知道为什么你甚至需要一个用户名 – 也许更有知识的人可以解释这一点?
对于Windows上的TortoiseGit用户
最初,我曾经使用SSH存储库URL来设置我的大部分Github / Bitbucket存储库 (最初),它曾经是防止TortoiseGit在每一个动作中提示input密码的唯一方便的方法。
但以这种方式设置TortoiseGit总是令人头痛的痛苦。 每次花费我几个小时才能正确设置,因为默认安装选项似乎从来没有工作(甚至到2016年,谢谢!)。
但是TortoiseGit现在对HTTPS有更好的密码pipe理,而Github实际上build议尽可能使用HTTPS URL 。
SSHurl:
git@github.com:User/repo-name.git
HTTPSurl:
https://github.com/User/repo-name.git
:https://github.com/User/repo-name.git
HTTPS的好处是:
- 不pipe理或生成SSH密钥
- 无需持续运行
pageant.exe
(每次启动时都要求input密码) - 使用来自澳大利亚的TortoiseGit,我发现通过HTTPS的克隆比SSH快5-10倍
在我的Windows 7上使用git 1.8.3.msysgit.0运行Github for Windows。 我发现更新我的系统环境variablesGIT_SSH到C:\ Program Files文件(x86)\ Git \ bin \ ssh.exe似乎有伎俩。 这也解决了我与联系OpenShift的git repo的问题。
如果您使用的是Pageant,并且在重新启动您的PC(或以其他方式closures并重新开始)之后得到问题中所描述的错误:
这个错误可能是由于Pageant没有主动加载你的GitHub SSH密钥造成的。 默认情况下,Pageant在启动时不会自动加载前一个会话中的密钥。
加载密钥:
- 打开选美。 (在Windows上,如果Pageant正在运行,系统托盘中会有一个图标,双击它。)
- 点击Add Keybutton,继续添加你现有的GitHub SSH密钥。
为了避免将来出现这个问题,您可以将Pageantconfiguration为在启动时自动加载密钥。 (如果您的密码是密码保护的,则Pageant将自动提示您input密码。)
步骤来做到这一点(假设你已经有configuration为Windows启动时运行的Pageant):
- findWindows启动时用于运行Pageant的快捷方式。 (它可能在Startup文件夹中,可以通过Start> Run>
shell:startup
打开) - 在快捷方式的“属性”对话框中,将SSH密钥文件的完整path和文件名附加到“目标”字段。
参考和全部细节: http : //blog.shvetsov.com/2010/03/making-pageant-automatically-load-keys.html
同样的错误,不同的解决scheme在这里指出 – 问题连接到Windows上的GitHub,即使通过PuTTY
我遇到了同样的问题,但是GIT_SSH解决scheme似乎为我工作了一次。 在电脑重新启动后,我意识到这是另一回事,因为我可以使用Git Bash或命令提示符克隆我的私有存储库,但不能在SublimeGit插件的Sublime Text 3中使用。 我的解决scheme很简单,实际上是@BlueRaja – Danny Pflughoeft提到,但我认为它可以使用一些方向;)
基本上你只需要编辑~/.ssh/config
并确保用户名是git
。 您也可以告诉它为Github使用特定的SSH密钥 – My〜 ~/.ssh/config
文件如下所示:
Host gh Hostname github.com User git IdentityFile ~/.ssh/github_rsa.pub
我有一个特定的关键Github由于我一天做的其他事情的数量,但如果你只有一个,那么它通常会~/.ssh/id_rsa.pub
像Github在这里解释 。
我知道每个人都有一个不同的解决scheme,但我会留在这里为任何人可能遇到这个文章没有修复。 祝你好运!
你可以从这里获得plink&pageant: http : //www.chiark.greenend.org.uk/~sgtatham/putty/download.html
他们是腻子工具。
使用TortoiseGit从GitHub克隆版本库时出现这个错误。 通过点击“Load Putty Key”并在Git克隆对话框中select一个密钥文件(* .pkk)来修复。
在Windows 8上为我工作:GIT_SSHvariables指向plink.exe,在系统设置中将其更改为指向ssh二进制文件,并解决了问题。 要找出ssh的完整path,请运行:
where ssh
我得到了这个问题(直接ssh工作,但混帐拉失败),由于我的git远程不是我所想的那样。
是的,是的,我知道这是一个愚蠢的错误,但它发生,值得检查。
使用git remote -v