如何强制git-client仅使用控制台/终端。 当我进入我的远程/无头linux计算机并尝试运行时:
git clone https://myname@bitbucket.org/xxx/xxx.git
git抱怨并给我这个错误: (gnome-ssh-askpass:2769):Gtk-WARNING **:无法打开显示:
我不想使用图形界面也不想使用ssh -X。 我只是想配置git-client只使用终端。
我正在使用CentOs并使用yum install git获得git-client。
答案 0 :(得分:26)
您可以通过取消设置gnome-ssh-askpass
环境变量来禁用当前会话中的SSH_ASKPASS
:
unset SSH_ASKPASS
您可以在.bashrc
或.profile
中添加它,并通过条件检查用户是否使用SSH登录。类似的东西:
[ -n "$SSH_CONNECTION" ] && unset SSH_ASKPASS
BTW,someone else也抱怨git盲目调用SSH_ASKPASS程序而不确定它是否是GUI会话。如果您阅读完整的线程,它将解释无法使用DISPLAY
环境变量来检测这一点。此外,没有提及该补丁是否被接受。
答案 1 :(得分:5)
根据Tobu的回答,我在我的~/.bashrc
中得到了这个结果 - 如果你在ssh会话中使用git,我想你会在~/.bash_profile
中想要它:
export GIT_ASKPASS=
这似乎可以使用CLI密码提示阻止恼人的gnome-ssh-askpass对话。
取消设置SSH_ASKPASS
,这是最常见的建议,可能可能会产生一些意想不到的副作用。
答案 2 :(得分:3)
您需要将ssh-askpass命令更改为不使用UI的内容(从错误消息中看,它是gnome-ssh-askpass
)。
答案 3 :(得分:2)
导出
GIT_ASKPASS=true
将禁用任何提示。
从Git 2.3开始,您可以使用
GIT_TERMINAL_PROMPT=0
或编写一个echo quit=1
的简短脚本,并将其用于core.askpass
。