【问题标题】:X session in Git Bash on Windows?Windows 上 Git Bash 中的 X 会话?
【发布时间】:2012-04-25 03:14:30
【问题描述】:

我在 Windows 上使用 Git Bash。 我使用 Git Bash 通过 SSH 连接到一台 UNIX 机器,并尝试使用 GUI 运行程序。 我收到消息: LINUX/UNIX system detected, but unable to access X11 display.

我有 X-Win 32(商业版)。我也使用过 Xming,它类似于 X-Win 32 的免费版本,但在某些图形方面存在问题。

有没有办法让这个远程系统通过 X-Win 32 或 Xming 或任何方式访问我的 X11 显示器?

我只想在 UNIX 机器上运行 MATLAB 之类的程序,并在 Windows 上通过 Git Bash 通过 SSH 连接到该机器时弹出 GUI。

我还安装了 PuTTY 和 Secure Shell 客户端,但我更喜欢仅从 Git Bash 工作,因为它需要更少的按钮来通过 ssh 连接到其他机器。

如果无法在 Git Bash 上运行它,我希望它与 PuTTY 一​​起运行(安全 Shell 客户端很好,但已永久停止更新)。

【问题讨论】:

  • 两件事:1.您需要禁用Xming中的访问控制(所以-ac)[不推荐]和2.您需要设置DISPLAY以指向Xming在尝试时运行的IP连接。

标签: git user-interface x11 putty git-bash


【解决方案1】:

Xming 的替代方案是使用 Visual Studio C++ 构建的VcXsrv。最新版本的 Xming 现在需要捐款。

将鼠标指向状态栏中的 X 图标,然后找出它在哪个端口上运行。如果是:0.0(或:25.0),那么在Git Bash 中:export DISPLAY=localhost:0.0(或export DISPLAY=localhost:25.0)。您可能还需要在 ssh 命令中使用 -Y 而不是 -X

【讨论】:

  • 我不知道这个“需要捐赠”的东西是从哪里来的。据我所知,您只需download it from SourceForge,安装它就可以了。 SourceForge 发布的Terms on the Xming website 声明是公共领域。 (“您可以随心所欲地使用公共领域的版本,包括免费分发它们;它们仍然适当地保留所有原作者的许可,但我已放弃对它们的权利。”)
  • 最后一次公共领域发布是从 2007 年开始的。检查 here 看看这个“需要捐赠”的东西来自哪里。
【解决方案2】:

这个Q有点老了,但无论如何...... 我(终于...)能够使用来自Git for WindowsXMingssh 命令来完成这项工作。我所要做的就是将DISPLAY 环境变量设置为localhost:0.0(它只设置为:0.0)。

【讨论】:

  • 如何在 Git Bash 中编辑环境变量?还是您在 ssh 中执行此操作?谢谢
  • export DISPLAY=localhost:0.0 放入您的$HOME/.bashrc
  • 我通过 Windows 的系统环境变量添加了这个,它对我来说很好。
  • 这对我有用,但我还必须删除远程主机上的 ~/.Xauthority
  • 这个添加是在 SSH 客户端还是服务器端?它在客户端 $DISPLAY 变量中?
【解决方案3】:

我能够使用 putty 和 xming 完成此任务 http://sourceforge.net/projects/xming/

只需启动 xming 并在 putty 的选项中启用 x 会话转发。

【讨论】:

  • 它也适用于 git-bash 和 xming,至少对于 xclock。只需要在sshing之前将显示设置为localhost...即可。
【解决方案4】:

您的问题是,您必须以某种方式将 XAuthority 数据传递到远程主机。通常 SSH 会为您执行此操作,但前提是它以正确的环境变量启动。基本上,您需要找出 xauth 数据的位置并将该路径放入 XAUTHORITY 环境变量中。 DISPLAY 很可能是“:0.0”。

我认为最直接的解决方案是使用 Cygwin 和它附带的 X11 服务器,因为它的 X 启动脚本会打开一个 xterm,您可以从中通过 SSH 连接到远程机器。

【讨论】:

    【解决方案5】:

    在使用 SSH 连接之前,您必须启动 X 服务器。当您连接到另一个盒子时,您必须将-X 开关与SSH 包括在内。这将告诉 SSH 将 X11 应用程序输出转发到您的 Windows 机器。

    【讨论】:

    • 非常感谢您的回复。我试过: ssh -X name@server.corp.com 然后是 xclock,它说“错误:无法打开显示”
    【解决方案6】:

    您可以尝试在 git bash 中将 -X 开关添加到您的 ssh 命令。我不确定这是否可行。但是,这不是我建议的方法。相反,我建议您使用 putty 研究 X 转发。您应该能够通过快速搜索找到各种有关如何进行设置的指南。

    【讨论】:

    • 非常感谢您的回复。我试过: ssh -X name@server.corp.com 然后是 xclock,它说 "error: Can't open display" 。通过转到 Connection->SSH->X11 并选择“启用 X11 调谐”并将显示位置设置为 127.0.0.1:0 (即我自己的机器, PuTTY 在其上运行)。谢谢你的建议。能够从 Git Bash 执行此操作仍然是理想的 - 为什么不推荐它?
    • 我不会推荐它,因为据我了解 git bash 的存在只是为了在 Windows 上为您提供一个方便的 git 命令行。即使你可以让它工作,我怀疑 X 转发是否在开发人员的雷达上。
    猜你喜欢
    • 2021-09-04
    • 1970-01-01
    • 2018-03-04
    • 2019-03-25
    • 1970-01-01
    • 2012-05-16
    • 2021-04-05
    • 2016-05-12
    • 2013-03-23
    相关资源
    最近更新 更多