我有一台在云托管服务上远程运行的 Ubuntu 服务器 (12.04 LTS)。我已ubuntu-desktop
通过以下方式安装apt-get
:
$ sudo apt-get install ubuntu-desktop
看上去安装没有问题。
我已经确认/etc/ssh/ssh_config
服务器上包含以下行
ForwardAgent yes
ForwardX11 yes
ForwardX11Trusted yes
/etc/ssh/sshd_config
服务器上包含以下行:
X11Forwarding yes
然后我重启了服务器。服务器恢复正常了。
现在,在我的 Mac 上启动 X11.app,我会看到一个 Xterm。
我使用以下命令从该终端连接到我的服务器:
$ ssh -X <myhost>
我连接到服务器,没有问题。
我现在不知道该怎么办。我试过了
$ sudo startx
但我收到“未找到屏幕”错误。
我没有屏幕,因为它是一个无头云服务器,但我只想通过 X 从我的 Mac 访问它。
现在怎么办?
答案1
有几种方法可以实现这一点,取决于您真正需要做什么。
为了将远程应用程序转发到本地 X 环境,您需要在 Mac 上安装 X11(您可以在 Apple 支持网站上找到它):http://support.apple.com/kb/DL1605?viewlocale=en_US&locale=en_US
从 X11 应用程序打开终端,然后使用以下命令访问远程主机:
ssh -XC user@host
然后,登录后,只需运行所需应用程序的命令,例如:firefox、nautilus、thunderbird等等......
您甚至可以只启动系统(Ubuntu、Xubuntu、Mint 等)主菜单,然后从那里与远程系统交互,而无需完整的图形前端。在远程 Linux Mint 环境中,我只需运行:
mintmenu&
如果您确实需要,您甚至可以在 Mac 的 X11 上本地启动远程图形环境,只需运行:
ubuntu-session
xubuntu-session
etc... (depends of your remote environment)
比任何 VNC 都好,甚至比 X11VNC 连接更好!安全且压缩的连接 FTW。
答案2
在你的 Mac 上,如果你还没有安装 XQuartz,你需要安装它(参见http://xquartz.macosforge.org)。安装完成后,重新启动并打开 XQuartz 终端窗口,然后通过 SSH 连接到您的 Ubuntu Server 系统:
ssh -X yourubuntuserver
如果 lightdm 正在运行(参见https://askubuntu.com/a/153423/66799了解如何根据需要打开和关闭它),运行此命令通过 X11 将 Ubuntu Unity 隧道传输到您的 Mac:
gnome-session --session=ubuntu-2d
对我来说,Ubuntu Server 12.04 LTS 和 Mac OS X Mountain Lion 10.8.2 可以解决这个问题,但偶尔也会遇到 Composiz 错误。不过,我在本地运行 Ubuntu Desktop 时也总是遇到 Composiz 错误。(-:
您可以退出 Unity 以关闭 Ubuntu 桌面窗口。
答案3
您的想法是正确的,但是语法是错误的:)
startx
不会重新开始,ssh
因为它需要一个屏幕(也就是X
要与之通信的服务器)
尝试这个命令来启动桌面 GUI
sudo service gdm start
这将启动桌面环境。
断开。
并尝试
ssh -X nautilus username@host
注意没有测试上面的行
如果一切正常,您应该会看到 ubuntu 文件管理器弹出窗口。如果没有,您可能缺少一些库或命令的语法错误(我没试过)。