我使用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似乎可以正确地进行身份验证,这一事实让我想知道这里的最佳解决方案是什么。如果没有必要,我当然不想让我的设置过于复杂。
发布于 2010-10-02 02:57:42
您可以在主目录中创建一个名为".profile“的文件,对于我来说,文件名为C:\Users[user]
在该文件中,放入以下代码行:
GIT_SSH="/usr/bin/ssh.exe"
这将设置GIT_SSH环境变量以使用包含在git中的ssh客户端。
.profile脚本在启动Git Bash命令行时执行。
编辑: This is my .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
发布于 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
中
发布于 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就安装了自己的软件。
https://stackoverflow.com/questions/3431314
复制相似问题