【问题标题】:Git for Windows - Asking for SSH passphrase every pushGit for Windows - 每次推送都要求输入 SSH 密码
【发布时间】:2021-07-02 11:21:02
【问题描述】:

我今天为 windows 安装了 git 并进行了一些测试,我发现每次推送时都会要求我输入密码(这在 Linux 上不会发生)。

我已经对另一个线程提出了一些建议,我发现我没有配置 ssh-agent,但是我这样做了,问题仍然存在。

有什么建议吗?谢谢!

【问题讨论】:

  • 您能否详细说明如何您配置了 ssh-agent?

标签: git ssh git-for-windows


【解决方案1】:

试试下面

  1. 使用 Git bash 而不是 powershell

  2. 将您的密钥文件复制到 ~/.ssh

  3. 将以下代码粘贴到您的 ~/.profile 或 ~/.bashrc

  4. 重启 Git Bash

            env=~/.ssh/agent.env
            agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; }
    
            agent_start () {
                (umask 077; ssh-agent >| "$env")
                . "$env" >| /dev/null ; }
    
            agent_load_env
    
            # agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2= agent not running
            agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)
    
            if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then
                agent_start
                ssh-add
            elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then
                ssh-add
            fi
    
            unset env
    

启动时 git bash 将提示或输入密钥密码,然后无缝运行。脚本还将启动 SSH 代理并使用 ssh-add 添加密钥文件

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,花了几个小时试图弄清楚为什么 windows 一直要求我输入 ssh 密码,对我有帮助的是来自 https://www.teapotcoder.com/post/how-to-fix-git-ssh-asking-for-password-on-windows-10/

    的解决方案

    打开 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。将其放入环境 PATH 中并进行测试:

    ssh -T git@github.com
    

    使用您通过 ssh-add 使用 Windows 提供的二进制文件添加的密钥。但是 git 正在使用 git usr/bin 文件夹中的 ssh 内容。不同的键集。因此,每次 git pull 时都会提示您输入密码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      • 2014-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-30
      • 2021-03-29
      相关资源
      最近更新 更多