github:没有支持的认证方法可用
我使用github,并在我的笔记本电脑上成功添加和同步文件。
截至最近,我开始运行后发现 “ PuTTY致命错误:断开连接:没有可用的身份验证方法 ”:
git pull起源主(或推)
然而
ssh git@github.com返回正确的回应:错误:您好用户名! 您已成功通过身份验证,但GitHub不提供关闭github.com的外壳访问连接。
在github上挖掘我发现这个morcel后:
没有支持的认证方法可用您应该知道环境变量GIT_SSH,如果ssh不适用于您,它将被git用于查找您的ssh说客户端。 git安装可能使用plink.exe(通过GIT_SSH)来执行身份验证。 如果是这样,请确保您有pageant.exe正在运行,并且您为github创建的密钥加载到该密钥中。 这提供了plink.exe的关键; 没有它,上述错误将会发生。
不知道什么plink.exe或peagant.exe是..以及ssh git@github.com似乎正确认证的事实让我想知道这里最好的解决方案是什么..我当然不想过度复杂我的设置,如果不是必要。
你可以在你的主目录中创建一个名为“.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
使用TortoiseGit
将TortoiseGit> Settings> Network> SSH Client设置为C:Program Files (x86)Gitbinssh.exe
或C:Program FilesGitusrbinssh.exe
“...不知道什么plink.exe或peagant.exe是...”
既然你问:plink和pageant是PuTTY套件的一部分,PuTTY套件是一个支持Linux和Windows的SSH实现,在Windows上完全占支配地位。
SSH
安全外壳(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安装它自己的。
链接地址: http://www.djcxy.com/p/92211.html