首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >github:没有支持的身份验证方法可用

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

Stack Overflow用户
提问于 2010-08-08 01:11:03
回答 18查看 106.6K关注 0票数 104

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

最近,我在运行以下命令后开始收到"PuTTY Fatal Error: Disconnected: No supported authentication methods available“的提示:

git拉取源站(或推流)

然而,

ssh git@github.com返回正确的响应: ERROR: Hi username!您已成功通过身份验证,但GitHub不提供到github.com closed的外壳访问连接。

在github上搜索后,我发现了这个morcel:

ssh没有支持的身份验证方法可用您应该知道环境变量GIT_SSH,如果ssh对您不起作用,git将使用它来查找您的ssh语言客户端。git安装可能正在使用plink.exe (通过GIT_SSH)执行身份验证。如果是,请确保pageant.exe正在运行,并将为github创建的密钥加载到其中。这提供了plink.exe的密钥;如果没有它,就会出现上面的错误。

不确定plink.exe或peagant.exe是什么..ssh git@github.com似乎可以正确地进行身份验证,这一事实让我想知道这里的最佳解决方案是什么。如果没有必要,我当然不想让我的设置过于复杂。

EN

回答 18

Stack Overflow用户

回答已采纳

发布于 2010-10-02 02:57:42

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

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

代码语言:javascript
运行
复制
GIT_SSH="/usr/bin/ssh.exe"

这将设置GIT_SSH环境变量以使用包含在git中的ssh客户端。

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

编辑: This is my .profile。当你第一次启动git命令提示符时,它会要求你输入密码,然后会一直记住它,直到你重新启动计算机。非常方便,所以你不必每次想做什么都要输入密码。

代码语言:javascript
运行
复制
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
票数 105
EN

Stack Overflow用户

发布于 2015-08-03 22:44:41

使用TortoiseGit

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

位置可能有所不同。在一台计算机上,它是在C:\Program Files (x86)\Git\bin\ssh.exe

票数 40
EN

Stack Overflow用户

发布于 2015-03-13 23:21:28

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

既然你问: plink & pageant是suite的一部分,它是PuTTY的一个实现,它支持Linux和Windows,并且完全在Windows上占主导地位。

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

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

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

在Windows上,它是在SSH协议(如上所述)下远程访问Linux主机命令行的主要软件。在Windows中,.exe扩展是针对可执行文件的。所以那些关于plink.exe & pageant.exe的笔记可能是don't apply if you're in Linux。PuTTY包括

Plink:PuTTY后端的命令行界面

SSH :一个支持PuTTY、PSCP和的身份验证代理

发件人(http://en.wikipedia.org/wiki/Secure_Shell#Key_management)

如果远程端上存在公钥,而本地端上存在匹配的私钥,则不再需要键入密码...为了提高安全性,可以使用密码短语锁定私钥本身。

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

每次加载Pageant时导入所需的密钥。如果你按照指南上说的“导入你的钥匙”,看到它工作了,但它现在不工作,请参阅Chapter 9: Using Pageant for authentication

如果您使用的是Windows,最后一条提示是:您可以通过各种工具安装PuTTY套件的多个实例。例如,TortoiseGit就安装了自己的软件。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3431314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档