在无头linux服务器上使用git客户端

时间:2013-05-02 22:20:36

标签: linux git

如何强制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。

4 个答案:

答案 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