尝试通过 SSH 连接到我的服务器时出现错误 Gtk-WARNING **: 无法打开显示:

尝试通过 SSH 连接到我的服务器时出现错误 Gtk-WARNING **: 无法打开显示:

有点 ubuntu 新手,但我正尝试使用 SSH 在远程服务器上运行 github 上的代码,并且代码在此 Gtk-WARNING **:无法打开显示:处停止

如何解决此错误?我认为我无法使用 VNC 服务器,因为我没有 root 权限。还有其他方法可以访问/启用运行 Ubuntu 的服务器的 GUI 界面吗?

谢谢!

答案1

您应该在 /etc/ssh/sshd_config 中启用 X11Forwarding,然后观察会发生什么。

配置文件摘录:

 X11Forwarding yes
 X11DisplayOffset 10
 PrintMotd no
 PrintLastLog yes
 TCPKeepAlive yes

希望这可以帮助。

答案2

我能想到三种方法。

  1. 通过 SSH 启用 X11

    正如 gmt42 在他的回答中所说,您可以启用 SSH 来隧道传输 X11 消息,然后在您启动 SSH 的计算机上打开窗口。

    在大多数情况下,您可以使用-X命令行选项执行此操作。现在,如果您这样做man ssh并搜索有关 X11 的信息,您将看到各种选项,甚至一些有关 ssh 和 X11 功能的示例。

  2. 在服务器上运行该工具

    如果您知道自己在做什么,则可以在服务器上启动应用程序。这意味着窗口对您不可见。它将在服务器上可见。在大多数情况下,这仅在您登录 X11 会话时才有效。(即,如果其他人登录或没有人登录,它可能不起作用)

    这是通过在DISPLAY运行命令之前进行设置来完成的:

     DISPLAY=:0 cmd
    

    表示打开显示屏0 localhost

  3. 设置并启动远程桌面

    在 Ubuntu 偏好设置中,你有一个“屏幕共享”或类似的东西。(我有 Ubuntu 18.04,现在它就是这么叫的)。这将创建一个 VPN,您可以连接到它。它使用端口 5900,您需要设置登录名和密码以允许访问。如果双方都有 Ubuntu,那应该很容易。我使用了 Remmina,它按预期工作。

    如果您有防火墙,则必须打开端口访问权限。这也可以通过 SSH 隧道来实现(这可能不会更慢,但会增加一层保护)。

在此处输入图片描述

相关内容