git生成Gtk-WARNING:无法打开显示
我一直在通过我没有pipe理员权限的机器上的命令行远程工作我的项目,并在运行git push origin master
我得到以下错误信息:
(gnome-ssh-askpass:29241): Gtk-WARNING **: cannot open display:
我的.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
我之前得到了403错误。 在这里发表评论之后,我把我的用户名放在远程URL的@符号之前,从那以后,我得到了Gtk错误。
当我使用ssh -X
login到机器并尝试推送时,出现以下错误:
X11 connection rejected because of wrong authentication. (gnome-ssh-askpass:31922): Gtk-WARNING **: cannot open display:localhost:10.0
如果我把远程的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
你知道如何解决这个问题吗?
我终于find了解决这个问题的办法。 正如这里所描述的,我在terminal中运行了以下命令:
unset SSH_ASKPASS
然后运行git push origin master
按照它应该的方式工作。 您也可以将该行添加到.bashrc
文件中。
我最近在Git版本为1.7.4.1的RedHat 5机器上处理了这种行为。
我没有高度的自信,认为unset SSH_ASKPASS
不会有意想不到的后果,所以我想看看是否有另一种解决scheme。
我无法确定,但是似乎这个问题的一个补丁正在与我们的Git版本发布的同时进行。 所以,在我看来,希望更新的版本能纠正这种行为是合理的。
事实上,确实如此。 升级到Git的1.8分支解决了这个问题。 该错误消息仍然显示一些奇怪的原因,但您正确提示您input密码并允许继续。
这些答案都没有为我工作(ssh'ing通过Cygwin在Windows 10到RHEL 6.8服务器,并试图从RHEL框克隆github.com回购),所以我做的是克隆通过SSH密钥,而不是HTTPS用户名/密码。 例如我使用git@github.com:MyUsername / myproject.git而不是httpsurl。 我也正确地将我的公钥上传到Github。 这个方法工作正常。
注意:在上面的解决scheme中,我实际上并没有尝试升级到1.8的git分支