在 Git for Windows 2.42 / Git Extensions for Windows 4.2.0 中,我们如何禁用 Git CLI stdin 包装器?

问题描述 投票:0回答:2

我正在使用 Git 和 Git Extensions for Windows 进行版本控制。我工作流程的一部分是从 Git Extensions 打开 Git bash 来在命令行上工作。我在 Git bash 中经常使用的命令之一是 ssh-add

,因为远程存储库最多可以通过 SSH 访问。

这一直有效到今天,没有任何问题。如果我这样做了

ssd-add <my-key-id>

,系统会直接在 Git bash 中要求我提供密钥的密码
今天早上,有人向我提供了 Windows 版 Git 扩展的更新,即版本 4.2.0,以及 Windows 版 Git 的更新,即版本 2.42。,我愚蠢地接受了这些提议。

结果是我无法再访问远程存储库,原因如下:执行

ssh-add

命令后,我不再被要求在 Git bash 中输入密码;相反,会打开一个 GUI 对话框,其中包含一个文本字段,我可以在其中输入密码,标题为“Git 扩展 - git CLI stdin 包装器”。现在的问题是,

这个标准输入包装器无法正确处理我的密码;
可能是因为密码包含各种特殊字符,包括德语变音符号。无论如何,我无法再解锁所需的 SSH 密钥了。 我怎样才能阻止这种疯狂呢?是否可以禁用那个愚蠢的标准输入包装 GUI 对话框,以便我可以再次在命令行输入密码? 看来我可能可以通过使用其他 SSH 二进制文件(

ssh-add

ssh

等)来解决问题,但我不想这样做。绝对不需要那个 GUI 对话框(直接在 Git bash 中输入密码一直有效),并且使用另一个 SSH 客户端会很愚蠢(与 Git 捆绑在一起的客户端也总是可靠地工作,我已经放了一些其安全配置的工作不可忽视)。

最后一点,我也知道我可以通过单独打开 Git bash 来解决问题,而不是从 Git 扩展中打开。然而,这会因为一些不明显的原因而破坏我当前的工作流程,我不想在这里解释;这将是一个非常烦人的紧急解决方案。
此外,很明显,我不会仅仅因为完全多余的 GUI 标准输入包装器以错误的方式传递它们而更改我的 SSH 密码。

作为中间解决方案,您可以重命名或删除

C:\Program Files (x86)\GitExtensions\GitExtSshAskPass.exe
git ssh git-bash git-extensions ssh-agent
2个回答
1
投票
SSH_ASKPASS

环境变量,则将内联询问密码。

请注意,这适用于 
git
要求输入密码的所有地方。然而,这与之前的 (4.1) 行为相同,因为

SSH_ASKPASS

仅在没有控制台或存在输入管道的情况下使用。

    
我一直很困惑为什么用户会来这里抱怨而不是直接向开发团队提出问题。您可以直接从 Git 扩展报告问题:


© www.soinside.com 2019 - 2024. All rights reserved.