教程:使用SSH和VNC实现远程访问Linux桌面

虽然操作和管理服务器的主要手段是通过shell终端 – 它也是我们建议选择的方式 – 您可能还需要本地电脑通过GUI图形界面链接您的服务器。

通过X11转发运行单个命令ssh,将整个桌面转发到VNC,有很多方法可以完成此工作。在本教程中,我们将介绍如何进行这些操作,以便您可以选择最适合您需求的应用程序。

注意:我们不能保证这些操作速度将特别快 – 主要是由于您的机器和服务器之间的延迟 – 但它可能会在一段时间内派上用场。

要求:

服务器运行任何可用的操作系统。

非root用户帐户(需要升级的权限的命令将使用sudo)

运行Linux的本地机器,安装了XQuartz的OS X机器或安装了Xming的Windows机器 – 本教程取决于某种类型的X服务器是否在本地运行。

Windows用户应该安装Xming。
OS X用户应该安装XQuartz。
一旦安装了Xming / XQuartz,您可以启动一个xterm或其他终端到ssh进入VPS并启用X11隧道。
Windows / OS X用户可能会更喜欢VNC,但这些超出了本教程的范围。

转发单个X应用程序

要在服务器上运行X应用程序,应通过ssh使用-X启用X转发的-C选项以及启用数据压缩的选项进行连接。

$ ssh -XC user@IP-ADDRESS

一旦进入服务器,您应该首先安装该xauth软件包。

$ sudo apt install xauth # Debian/Ubuntu
$ sudo yum install xorg-x11-xauth # CentOS

然后,/etc/ssh/sshd_config使用您喜爱的编辑器打开并查找该X11Forwarding选项。该行应该被取消注释并被更改为X11Forwarding yes。

之后,您应该重新启动sshd。

$ sudo systemctl restart sshd

然后,您应该断开与服务器的连接并重新连接。此时,请确保确保启用了X11转发。如果工作正常,您应该看到以下输出:

$ echo $DISPLAY
localhost:10.0

让我们安装一些简单的测试方法 – 怎么样xclock?一旦安装,您可以从服务器运行它,它将显示在本地计算机的桌面上。

$ sudo apt install x11-apps # Debian/Ubuntu
$ sudo yum install x11-apps # CentOS
$ xclock

现在你可以运行任何X应用程序,从gedit到firefox。如果您需要在只有图形安装程序的服务器上安装某些东西,可能会特别有用。

转发整个桌面

运行单个X应用程序可能每时每刻都有用,但是完整的桌面呢?如果您需要使用服务器更多基于GUI的应用程序,这可能会有很长的路要走。

在本教程中,我们将快速安装XFCE桌面环境,这是一种用于此类用途的良好,低资源选择,然后通过SSH转发。

Debian / Ubuntu

$ sudo touch /dev/fuse
$ sudo apt install xfce4 xfce4-goodies gnome-icon-theme

CentOS的

$ sudo yum install epel-release -y
$ sudo yum groupinstall "X Window system"
$ sudo yum groupinstall xfce

一旦安装了XFCE,您可以将SSH插入服务器(如果您还没有)并开始新的会话:

$ xfce4-session

远程桌面将直接显示在您自己的桌面上。

通过X11转发在我的基于Fedora / Gnome的本地机器上运行(有点不快)的远程XFCE会话

VNC

想要连接到远程机器并使用完整桌面的用户,VNC是另一种选择。这有点更多地涉及到其他一些人,但是我们将以最快的方式逐步完成VNC服务器的运行。

在您进行VNC之前,您应该按照上述说明安装XFCE或其他桌面环境。

首先,您需要在服务器上安装VNC服务器。

$ sudo apt-get install tightvncserver # Debian/Ubuntu
$ sudo yum install tigervnc-server # CentOS

然后可以运行服务器本身。系统会首次提示您创建仅限VNC的密码。

$ vncserver :1 -geometry 800x600 -depth 24

You will require a password to access your desktops.

Password:
Verify:
xauth: file /home/user/.Xauthority does not exist

New 'user:1 (user)' desktop is hostname:1

Creating default startup script /home/user/.vnc/xstartup
Starting applications specified in /home/user/.vnc/xstartup
Log file is /home/user/.vnc/hostname:1.log

最后,启动您最喜欢的VNC客户端。根据您的操作系统,存在一些选项:

Vinagre [Linux]
Real VNC [Windows / OS X / Linux / iOS / Android]
TightVNC [Windows / OS X / Linux]
TigerVNC [Linux / Windows / OS X]
通过附加:1到您的VPS的IP地址连接到您的VNC服务器。您将可以访问完整的桌面!

注意:默认的VNC服务器不是很安全,并创建另一个潜在的攻击漏洞。