13

如何强制 git-client 仅使用控制台/终端。当我 ssh 进入我的远程/无头 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。

4

4 回答 4

26

您可以通过取消设置环境变量gnome-ssh-askpass在当前会话中禁用:SSH_ASKPASS

unset SSH_ASKPASS

您可以将它添加到您的.bashrc.profile有条件地检查用户是否使用 SSH 登录。就像是:

[ -n "$SSH_CONNECTION" ] && unset SSH_ASKPASS

顺便说一句,其他人也抱怨 git 在没有确定它是否是 GUI 会话的情况下盲目调用 SSH_ASKPASS 程序的行为。如果您阅读完整的线程,它将解释不可能使用DISPLAY环境变量来检测这一点。也没有提及该补丁是否被接受。

于 2013-05-02T22:51:22.420 回答
5

根据 Tobu 的回答,我最终在我的~/.bashrc- 我想~/.bash_profile如果你在 ssh 会话中使用 git 你会想要它:

export GIT_ASKPASS=

这似乎可以防止烦人的 gnome-ssh-askpass 对话,使用 CLI 密码提示。

Unsetting SSH_ASKPASS,这是似乎最常见的建议,可能产生一些意想不到的副作用。

于 2015-04-12T10:42:56.297 回答
3

您需要将 ssh-askpass 命令更改为不使用 UI 的命令(gnome-ssh-askpass从错误消息中可以看出)。

于 2013-05-02T22:22:53.840 回答
2

出口

GIT_ASKPASS=true

将禁用任何提示。

从 Git 2.3 开始,您可以使用

GIT_TERMINAL_PROMPT=0

或编写一个简短的脚本,echo quit=1并将其用于core.askpass.

于 2015-03-22T11:00:14.270 回答