我正在尝试使用以下命令启动远程 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 服务器显示。
您的选择是:
只需使用即可启动单个远程应用程序
ssh -X [email protected] xclock
假设远程机器上启用了 XDMCP...
2a. 用于
Xnest -query 192.168.1.107 -geometry 1024x768 :1
在本地窗口中启动远程登录会话。2b. 使用
Xephyr :1 -screen 1024x768 -query 192.168.1.107
哪个比Xnest
还假设远程机器上有 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:经过一番思考,很明显如何加密Xephyr
或Xnest
会话......
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 复制文件。