问题描述
我有一个在云托管服务上远程运行的Ubuntu服务器(12.04 LTS)。我通过apt-get
安装了ubuntu-desktop
:
$ 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访问它。
现在怎么办?
最佳解决方法
根据您真正需要做的事情,有几种方法可以实现。
要将远程应用程序转发到本地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等)主菜单,并从那里与远程系统进行交互,而无需完整的图形化front-end。在远程Linux Mint环境中,我只需运行:
mintmenu&
如果您真的需要它,您甚至可以在Mac的X11本地启动远程图形环境,只需运行:
ubuntu-session
xubuntu-session
etc... (depends of your remote environment)
比任何VNC都好,甚至比X11VNC连接更好!安全和压缩连接FTW。
次佳解决方法
在Mac上,如果尚未安装XQuartz,则需要安装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桌面窗口。