当前位置:  开发笔记 > 编程语言 > 正文

github:没有可用的支持身份验证方法

如何解决《github:没有可用的支持身份验证方法》经验,为你挑选了6个好方法。

我使用github并在过去成功添加和同步了我的笔记本电脑上的文件.

截至最近,我开始在运行后收到" PuTTY致命错误:已断开连接:没有可用的支持身份验证方法 ":

git pull origin master(或推送)

然而

ssh git@github.com返回正确的响应:错误:您好用户名!您已成功通过身份验证,但GitHub不提供shell访问连接到github.com已关闭.

在github上挖掘后我发现了这个问题:

没有可用的支持的身份验证方法 您应该知道环境变量GIT_SSH,如果ssh不适合您,git使用它来查找ssh-speaking客户端.git install可能正在使用plink.exe(通过GIT_SSH)来执行身份验证.如果是这样,请确保您运行了pageant.exe,并为github创建了为其加载的密钥.这为plink.exe提供了关键; 没有它,将发生上述错误.

不知道plink.exe或peagant.exe是什么..而且ssh git@github.com似乎正确验证的事实让我想知道这里最好的解决方案是什么..我当然不希望过度复杂我的设置如果不是必要.



1> Rex Morgan..:

你可以在你的主目录中创建一个名为".profile"的文件,对我来说就是C:\ Users\[user]

在该文件中,放入以下代码行:

GIT_SSH="/usr/bin/ssh.exe"

这将设置GIT_SSH环境变量以使用git附带的ssh客户端.

启动Git Bash命令行时会执行.profile脚本.

编辑:这是我的.profile.它会在您第一次启动git命令提示符时询问您的密码,然后从此开始记住它,直到您重新启动计算机.非常方便,因此您不必在每次想要做某事时都输入密码.

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


对我来说,这只是GIT_SSH ="/ bin/ssh.exe"(在Windows上).谢谢!
+1当我使用Putty/Pageant来满足git的ssh需求时,我什么也没有问题.使用内置的ssh客户端可以创造奇迹.这解释了为什么ssh git@github.com如果你自己执行它会返回正常,但让git使用配置的工具(Putty/Pageant)却没有.
在Windows 7中使用cygwin,上面的答案有效,但我需要将`GIT_SSH`改为`.bash_profile`而不是`.profile`

2> Joseph Dykst..:

使用TortoiseGit

TortoiseGit>设置...网络... SSH客户端: C:\Program Files\Git\usr\bin\ssh.exe

位置我的变化.在它的一台电脑上C:\Program Files (x86)\Git\bin\ssh.exe

tortoisegit


谢谢.这很有效.注意:你可能不得不四处寻找'ssh.exe'在给定机器上的确切位置.对我来说它是C:\ Program Files\Git\usr\bin\ssh.exe(可能是在一台过时的机器上)

3> woodvi..:

"...不确定plink.exe或peagant.exe是什么......"

因为你问:plink和pageant是PuTTY套件的一部分,PuTTY套件是支持Linux和Windows的SSH实现,在Windows上完全占主导地位.

SSH

Secure Shell(SSH)是一种用于保护数据通信的加密网络协议.它在客户端 - 服务器体系结构中的不安全网络上建立安全通道,将SSH客户端应用程序与SSH服务器连接.常见应用程序包括远程命令行登录,远程命令执行,但可以使用SSH保护任何网络服务.

如果你曾经使用过Telnet,它就像那样(但更安全):它允许你远程访问Linux主机的bash shell(命令行).

油灰

PuTTY是一个免费的开源终端仿真器,串行控制台和网络文件传输应用程序.它支持多种网络协议,包括SCP,SSH,Telnet,rlogin ......

在Windows上,它是在SSH协议下远程访问Linux主机命令行的主流软件(上图).在Windows中,.exe扩展名用于可执行文件.因此,如果你在Linux中,那些关于plink.exe和pageant.exe的注意事项可能不适用.PuTTY包括

Plink:PuTTY后端的命令行界面

Pageant:PuTTY,PSCP和Plink的SSH身份验证代理

来自(http://en.wikipedia.org/wiki/Secure_Shell#Key_management)

当公钥存在于远程端并且匹配的私钥存在于本端时,不再需要输入密码...为了额外的安全性,私钥本身可以用密码锁定.

所以github托管在Linux机器上并使用SSH来保护连接.SSH要么使用密码或密钥进行身份验证,许多主机(github?)只能使用密钥进行身份验证.您设置显然是尝试使用密钥进行身份验证.密钥和主机不是一对一的:您可以为同一主机使用两个密钥,也可以为同一个密钥使用两个主机,因此需要对它们进行管理.如果您在Windows中,那么您的SSH会话可能通过plink访问,您的密钥可能由Pageant管理.

每次加载Pageant时都需要导入所需的密钥.如果你按照指南"导入你的密钥",并看到它有效,但它现在不起作用,请参阅第9章:使用Pageant进行身份验证.

如果你在Windows上,最后一个提示:你可能有各种工具安装的PuTTY套件的多个实例.例如,TortoiseGit安装自己的.



4> vaughan..:

我遇到了这个问题,因为我GIT_SSH指的是TortoiseSVN版本Plink.exe.我把它更改为指向TortoiseGit版本,重新启动cmd并且它工作正常.

我记不起来了,但TortoiseSVN版本可能是32位版本,而TortoiseGit版本是64位(位于Program Files,而不是Program Files (x86)).

仔细检查您的环境变化GIT_SSH.

我更喜欢使用正常的git cmd.exe(当然在Console2中)



5> Simon East..:

对于Windows上的TortoiseGit用户

最初,我曾经使用SSH存储库URL设置我的大多数Github/Bitbucket存储(原来)它曾经是防止TortoiseGit在每个操作上提示输入密码的唯一方便方法.

但是以这种方式设置TortoiseGit总是让人痛苦不堪.每次花费我几个小时才能正确设置,因为默认安装选项似乎永远不会起作用(即使截至2016年,sheesh!).

但TortoiseGit现在有更好的HTTPS密码管理,Github实际上建议尽可能使用HTTPS URL.

SSH URL: git@github.com:User/repo-name.git

HTTPS网址: https://github.com/User/repo-name.git

HTTPS的好处是:

无需管理或生成SSH密钥

无需pageant.exe持续运行(每次启动都会请求密码)

使用来自澳大利亚的TortoiseGit,我发现HTTPS上的克隆比SSH快5-10倍



6> Jon Schneide..:

如果您正在使用Pageant,并且在重新引导PC(或关闭并重新打开Pageant)后出现问题中所述的错误,请执行以下操作:

该错误可能是由于Pageant没有积极加载您的GitHub SSH密钥引起的。 默认情况下,Pageant启动时不会自动从上一个会话中加载密钥。

加载密钥:

    打开选美。(在Windows上,如果Pageant正在运行,它将在系统任务栏中带有一个图标。双击该图标。)

    单击添加密钥按钮,然后继续添加现有的GitHub SSH密钥。

为了避免将来出现此问题,您可以将Pageant配置为在启动密钥时自动加载密钥。(如果您的密钥受密码保护,选美会自动提示您输入密码。)

执行此操作的步骤(假设您已经将Pageant配置为在Windows启动时运行):

    查找Windows启动时Windows用于运行Pageant的快捷方式。(它可能在“启动”文件夹中,可以通过“开始”>“运行”>“”打开shell:startup

    在快捷方式的“属性”对话框中,将SSH密钥文件的完整路径和文件名附加到“目标”字段。

参考和完整详细信息:http : //blog.shvetsov.com/2010/03/making-pageant-automatically-load-keys.html

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有