我正在Windows 10 x64上使用安装程序,在此我通过独家安装和管理git,而不是自己下载并执行安装程序。通过PowerShell,我运行了
scoop install git
scoop install openssh
[environment]::setenvironmentvariable('GIT_SSH', (resolve-path (scoop which ssh)), 'USER')
但是,现在,当我尝试在 Git Bash 中运行命令时
git clone git@example.org:vendor/repository.git
或简单
git push/pull
我只能得到
CreateProcessW failed error:193
ssh_askpass: posix_spawn: Unknown error
而不是Git Bash向我询问我的SSH密钥的密码。
我在许多其他Windows 10 x64上使用了相同的设置(通过独家安装的git),并且在那里没有出现问题。因此,我不确定这是怎么回事。我以前没有在同一台机器上安装过git,但是Git Bash运行良好。在完全通过 scoop 重新安装git之前,我已完全卸载了git(并确保重新启动了机器)。
SSH_ASKPASS
环境变量包含以下内容(如果相关):
$ echo ${SSH_ASKPASS}
/mingw64/libexec/git-core/git-gui--askpass
不确定该文件夹是指什么(大概是 Git Bash 内部的东西?),因为它显然不像我的机器上那样存在。
单独使用git-with-openssh
而不是单独使用git
和openssh
时,它可以工作。但是,我没有在其他机器上使用它,所以我仍然想知道为什么它在这里不起作用。
答案 0 :(得分:1)
我很确定我的回答不会解决OP的原始情况。但是到2020年,似乎存在着类似的问题,但是解决方法不同,这就是我的情况。
部分问题是,现在Windows 10具有its own version of OpenSSH可用,至少在我工作的机器上,似乎默认情况下启用了该选项。
此捆绑的OpenSSH与Git bash不兼容,因此,如果要使用它,则必须强制git使用scoop提供的OpenSSH(来自openssh
或git-with-openssh
软件包)。这意味着覆盖GIT_SSH
环境变量,例如通过向您的.bashrc添加类似以下内容的行:
export GIT_SSH='C:\Users\rogs\scoop\apps\git-with-openssh\current\usr\bin\ssh.exe'
希望有帮助。
答案 1 :(得分:0)
即使这个话题已经很老了,问题仍然存在。我发现只需取消设置环境变量即可消除此错误。
unset SSH_ASKPASS
只需将其放入您的 .bash_profile
和/或您的 .bashrc
。