26

我想问一下关于通过 SSH 运行 X 应用程序的问题,如下所示。

我有使用 Gnome 2x 运行 SL6.3 的 Linux 桌面。在运行 CM9 的 Android 平板电脑上,我有适用于 Android 的 Connectbot 和 X-Server。我可以通过 SSH 成功使用 Connectbot 登录 Linux 机器。

我在 Linuxbox 上的 /etc/ssh/sshd_config 中设置了 X-forwarding 的选项。(X11Forwarding 是)。

现在,当我使用 -X 选项 ssh -X username@hostname:port 时,即使我提供了正确的密码,Connectbot 也会重复询问密码,并说 - '身份验证方法'密码'失败。

如何在平板电脑中通过 SSH 成功运行 X 应用程序?环境是家庭无线网络。

4

2 回答 2

18

我知道这个线程很旧......但是,我想确保我在 paulsm4 的回答中澄清了一些误导性的东西......

X 是倒退的……您没有连接到 X 服务器。您在本地机器上运行服务器(他所说的客户端实际上是服务器)。当您连接到安装了 X 库的远程 Nix 机器,并将 -X 开关添加到 SSH 命令时,ssh 会将 X 请求转发给您。在另一端运行的程序(Gnome、Chrome、PyCharm 等)将成为您的 X 客户端,并且它将被上游返回到包含 X 服务器的桌面。这是一个序列图:

User                                         Remote
-----------------------------------------------------------------------
User Inits SSH -X Session -----------------> SSH Server Auth User
                                                      |
                                                      V
SSH Session is established <---------------- SSH User is Authenticated
             |
             V
User Initiates App on server --------------> App Starts Running
                                                      |
                                                      V
                                             App Writes output to X Server
                                                      |
                                                      V
Xorg receives write commands <-------------- SSH Tunnels that back to User
             |
             V
Writing occurs on desktop
-----------------------------------------------------------------------

大多数时候,X 服务器和 X 客户端是相同的(就像在本地桌面上发生的那样)。因此,一旦客户端写入 X,本地 X 服务器就会写入屏幕。显示过程实际上是在用户的计算机上完成的,无论它在哪里,您的计算机都会成为服务器。疯了吧?

于 2015-02-26T23:51:42.593 回答
6

您可以在您的 android 盒子上安装以下 X11Server

https://github.com/nwrkbiz/android-xserver

并遵循以下几个步骤:

  1. 启动 android-xserver
  2. 启动像 ConnectBot 这样的 ssh 客户端(远程机器应该有ForwardX11 yes
  3. 运行 xclock, xterm ... 任何其他 X11 实用程序

请注意,因为 android-xserver,X11 实现它不是一个完整的。

于 2012-10-13T19:59:07.940 回答