Git for Windows-每次推送都要求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目录中的可执行文件,请

我今天安装了git for windows,并做了一些测试,我在每次推送时都会被要求输入密码短语(这在Linux上是不会发生的)

我对另一个线程提出了一些建议,我看到我没有配置ssh代理,但我这样做了,问题仍然存在


有什么建议吗?谢谢

我也遇到了同样的问题,花了几个小时试图弄明白为什么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时都会收到提示输入密码短语。

试试下面的方法

  • 用户Git bash而不是powershell

  • 将密钥文件复制到~/.ssh

  • 将下面的代码粘贴到~/.profile或~/.bashrc

  • 重新启动gitbash

    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
    未设置环境
    
  • 在启动时,GitBash将提示或密码密钥,然后无缝工作。脚本还将启动SSH代理并使用SSH add添加密钥文件。您能否详细说明如何配置SSH代理?