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.exeC:Program FilesGitusrbinssh.exe

tortoisegit


“...不知道什么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

上一篇: github: No supported authentication methods available

下一篇: github no address associated with name