使用 ssh -X 进行远程 x 服务器

使用 ssh -X 进行远程 x 服务器

我正在尝试使用以下命令启动远程 gnome 会话:ssh -X [email protected] gnome-session

客户端和服务端都是Ubuntu 12.04版本

我得到了以下内容(并没有发生太多事情)...

GNOME_KEYRING_CONTROL=/tmp/keyring-3aeNAh
GPG_AGENT_INFO=/tmp/keyring-3aeNAh/gpg:0:1
GNOME_KEYRING_PID=3573
GNOME_KEYRING_CONTROL=/tmp/keyring-3aeNAh
GPG_AGENT_INFO=/tmp/keyring-3aeNAh/gpg:0:1
GNOME_KEYRING_CONTROL=/tmp/keyring-3aeNAh
GPG_AGENT_INFO=/tmp/keyring-3aeNAh/gpg:0:1
SSH_AUTH_SOCK=/tmp/keyring-3aeNAh/ssh
GNOME_KEYRING_CONTROL=/tmp/keyring-3aeNAh
GPG_AGENT_INFO=/tmp/keyring-3aeNAh/gpg:0:1
SSH_AUTH_SOCK=/tmp/keyring-3aeNAh/ssh

(gnome-settings-daemon:3572): color-plugin-WARNING **: failed to get contents of /sys/class/dmi/id/board_version: Failed to open file '/sys/class/dmi/id/board_version': No such file or directory

** (gnome-settings-daemon:3572): WARNING **: You can only run one xsettings manager at a time; exiting

** (gnome-settings-daemon:3572): WARNING **: Unable to start xsettings manager: Could not initialize xsettings manager.
compiz (core) - Error: Screen 0 on display "localhost:10.0" already has a window manager; try using the --replace option to replace the current window manager.
Initializing nautilus-gdu extension
Created new window in existing browser session.
** Message: applet now removed from the notification area
** Message: using fallback from indicator to GtkStatusIcon

(gnome-settings-daemon:3572): keyboard-plugin-WARNING **: Failed to set the keyboard layouts: GDBus.Error:org.freedesktop.Accounts.Error.PermissionDenied: Not authorized

** (gnome-settings-daemon:3572): WARNING **: Failed to connect context: Connection refused

(gnome-settings-daemon:3572): clipboard-plugin-WARNING **: Clipboard manager is already running.

(gnome-settings-daemon:3572): color-plugin-WARNING **: failed to create device: GDBus.Error:org.freedesktop.ColorManager.Failed: failed to obtain org.freedesktop.color-manager.create-device auth

(gnome-settings-daemon:3572): color-plugin-WARNING **: GDBus.Error:org.freedesktop.ColorManager.Failed: failed to obtain org.freedesktop.color-manager.create-profile auth

(gnome-settings-daemon:3572): color-plugin-WARNING **: no xrandr-Samsung Electric Company-SAMSUNG device found: Failed to find output xrandr-Samsung Electric Company-SAMSUNG
Shutting down nautilus-gdu extension

** (gnome-settings-daemon:3572): WARNING **: Failed to connect context: Connection refused
Connection failure: Connection refused
pa_context_connect() failed: Connection refused

答案1

我假设您尝试做的是启动一个完整的远程 Gnome 会话,在本地机器上显示。这会失败,因为您已经有一个本地会话管理器控制您的 X 服务器显示。

您的选择是:

  1. 只需使用即可启动单个远程应用程序ssh -X [email protected] xclock

  2. 假设远程机器上启用了 XDMCP...

    2a. 用于Xnest -query 192.168.1.107 -geometry 1024x768 :1在本地窗口中启动远程登录会话。

    2b. 使用Xephyr :1 -screen 1024x768 -query 192.168.1.107哪个比Xnest

  3. 还假设远程机器上有 XDMCP,将本地机器配置为在启动时使用 XDMCP 选择器而不是标准欢迎器。

启用 XDMCP 只需

[xdmcp]
Enable=true

/etc/gdm/custom.conf重新启动gdm或重启(假设您正在运行gdm)。

如果您只打算远程运行几个应用程序,那么选项 1 是最简单的,并且继续使用 SSH 加密流量,而其他选项都不这样做(因此最好只在受信任的本地网络上使用它们)。

如果您需要做一些更复杂的事情,那么 2b(Xephyr)可能会更好,但我通常发现仅使用ssh -X ... &多个远程应用程序就足够了。

如果您远程执行所有操作,即本地机器只是一个显示服务器并且本身不执行任何操作,那么您需要考虑使用选项 3,启动 XDMCP 选择器而不是标准登录。


PS:正如评论中所述,和Xnest都是Xephyr处理 X 服务器协议并将整个会话放入窗口中的应用程序。Xnest使用本地 X 服务器提供的功能,而Xephyr处理更多服务器协议本身,因此更强大。它们可能不会默认安装,因为普通用户不会使用它们。


PPS:经过一番思考,很明显如何加密XephyrXnest会话......

ssh -X [email protected] Xephyr :1 -query localhost -screen 1280x1024

答案2

如果你想学习如何从终端使用标准 ssh,我想我会给你一个快速概述,因为你似乎在使用 ssh 密钥时遇到了麻烦。优点是它更通用,而且非常灵活。

要使用 ssh 密钥,它更安全,有时是必需的,并且更方便,因为您只需输入一次密钥,您需要对任何远程 ssh 服务器执行一次此操作:

生成密钥(如果需要,可以使用 dsa 代替 rsa)

ssh-keygen -t rsa    

将密钥传输至远程主机

ssh-copy-id <username>@<host>

如果不是标准端口 22,请使用以下端口:注意参数周围的引号

ssh-copy-id "<username>@<host> -p <port_nr>"

如果使用 dsa,则命令略有不同,添加-i <homedirectory>/.ssh/id_dsa

在此之后的某个时间,您将需要输入密码,该密码与您的正常登录密码不同。时间已经过去了一段时间,我忘记了确切的顺序,但应该很明显。然后,第一次连接时,系统会要求您输入此密码,一次。我使用相同的登录名,因此我不需要输入用户名(它假定与远程用户名相同)。此外,对于局域网上的服务器,我认为您可以输入“.local”而不是 IP 地址(对我来说有效)。

您甚至可以使用 sshfs 挂载远程文件系统(假设已安装 sshfs);用目录路径替换 local-mount-directory:

sshfs remote-host: local-mount-directory

(卸载使用fusermount -u local-mount-directory

我认为,如果您离开本地挂载目录,它将默认使用您的主目录。`

可以使用 scp 复制文件。

相关内容