Git for Windows-每次推送都要求SSH密码
我今天安装了git for windows,并做了一些测试,我在每次推送时都会被要求输入密码短语(这在Linux上是不会发生的) 我对另一个线程提出了一些建议,我看到我没有配置ssh代理,但我这样做了,问题仍然存在Git for Windows-每次推送都要求SSH密码,git,ssh,git-for-windows,Git,Ssh,Git For Windows,我今天安装了git for windows,并做了一些测试,我在每次推送时都会被要求输入密码短语(这在Linux上是不会发生的) 我对另一个线程提出了一些建议,我看到我没有配置ssh代理,但我这样做了,问题仍然存在 有什么建议吗?谢谢 我也遇到了同样的问题,花了几个小时试图弄明白为什么windows一直要求我提供ssh密码,帮助我的是以下方面的解决方案: 打开PowerShell并键入命令 Get-Command ssh 如果它的输出列出了一个不在git usr/bin目录中的可执行文件,请
有什么建议吗?谢谢 我也遇到了同样的问题,花了几个小时试图弄明白为什么windows一直要求我提供ssh密码,帮助我的是以下方面的解决方案: 打开PowerShell并键入命令
Get-Command ssh
如果它的输出列出了一个不在git usr/bin目录中的可执行文件,请执行以下操作:
git config core.sshCommand (get-command ssh).Source.Replace('\','/')
或者,如果您想在当前PowerShell会话中测试这一点,而不需要使用Git配置
$ENV:GIT_SSH_COMMAND = (get-command ssh).Source.Replace('\','/')
为什么这样做?
安装git时,它附带ssh。但是,如果您有较新版本的Windows 10,Windows会随附SSH安装。安装在C:\Windows\System32\OpenSSH中。它被放入环境路径中,因此测试:
ssh -T git@github.com
使用您通过ssh添加并使用Windows提供的二进制文件添加的密钥。但是git正在git usr/bin文件夹中使用ssh。不同的一套钥匙。所以每次你拉git时都会收到提示输入密码短语。试试下面的方法
env=~/.ssh/agent.env
agent_load_env(){test-f“$env”&&“$env”>|/dev/null;}
代理程序启动(){
(umask 077;ssh代理>|“$env”)
.“$env”>|/dev/null;}
代理加载环境
#代理运行状态:0=代理运行,带密钥;1=不带密钥的代理;2=代理未运行
代理运行状态=$(ssh add-l>|/dev/null 2>&1;echo$?)
如果[!“$SSH_AUTH_SOCK”]| |[$agent_run_state=2];然后
代理程序启动
ssh添加
elif[“$SSH\u AUTH\u SOCK”]&&[$agent\u run\u state=1];然后
ssh添加
fi
未设置环境