git生成Gtk-WARNING:无法打开显示

Joh*_*nak 132 git ssh version-control github

我一直在通过我没有管理员权限的机器上的命令行远程处理我的项目,并且在运行后git push origin master我收到以下错误消息:

(gnome-ssh-askpass:29241): Gtk-WARNING **: cannot open display:
Run Code Online (Sandbox Code Playgroud)

我的.git/config文件包含以下内容:

    [core]
       repositoryformatversion = 0
       filemode = true
       bare = false
       logallrefupdates = true 
    [remote "origin"]
       fetch = +refs/heads/*:refs/remotes/origin/*
       url = https://username@github.com/username/repository.git 
    [branch "master"]
       remote = origin
       merge = refs/heads/master
Run Code Online (Sandbox Code Playgroud)

我之前收到了403错误.在这里发表评论之后,我将用户名放在远程网址的@符号之前,从那以后,我一直收到Gtk错误.

当我使用ssh -X并尝试推送登录到机器时,我收到以下错误:

X11 connection rejected because of wrong authentication.
(gnome-ssh-askpass:31922): Gtk-WARNING **: cannot open display:localhost:10.0
Run Code Online (Sandbox Code Playgroud)

如果我将遥控器的URL更改为git@github.com:username/repository.git,则错误为:

ssh: connect to host github.com port 22: Connection timed out
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)

你知道怎么解决这个问题吗?

Joh*_*nak 327

我终于找到了解决问题的方法.由于它被描述在这里,我跑在终端下面的命令:

  unset SSH_ASKPASS
Run Code Online (Sandbox Code Playgroud)

然后git push origin master以它应该的方式运行.您也可以将该行添加到您的.bashrc文件中.

  • 谢谢......节省了很多时间.祝福你 (5认同)
  • 只是想补充一点,就是在我的CentOS 6.7系统上,这个脚本设置了这个变量:/etc/profile.d/gnome-ssh-askpass.sh (2认同)

eik*_*ega 19

我最近在RedHat 5机器上处理了这种行为,我们的Git版本是1.7.4.1.

我没有高度的自信,unset SSH_ASKPASS不会产生意想不到的后果,所以我想看看是否有另一种解决方案.

我无法确定,但似乎这个问题补丁正在与我们的Git版本发布的同时进行.因此,在我看来,希望更新的版本能够纠正这种行为是合理的.

确实如此.升级到Git的1.8分支解决了这个问题. 出于某些奇怪的原因仍然显示错误消息,但是系统正确提示您输入密码并允许其继续.

  • RHEL 5(CentOS 5 等)中的问题在文件 /etc/profile.d/gnome-ssh-askpass.sh(由 openssh-askpass 包拥有)中,其中 SSH_ASKPASS 环境变量被盲目设置为 /usr/libexec/openssh /gnome-ssh-askpass 如果没有 X(即通过 PuTTY 通过 SSH 登录),这将不起作用。您可以简单地注释掉该文件中的行(不要删除文件,否则会在更新 openssh-askpass 包后恢复)。或者完全删除包 openssh-askpass (yum remove openssh-askpass)。 (2认同)