如何在Linux中使用SSH配置X11转发

时间:2020-03-21 11:44:12  来源:igfitidea点击:

今天,我们将学习关于Linux的较小,有趣和有用的功能。
我相信你们大多数人都知道ssh。
我们可以通过SSH安全地访问远程Linux系统。
但是,我们是否知道可以将X转发到SSH以远程运行图形应用程序?
是的!这种机制称为X11转发。
在本教程中,我们将在Linux中使用SSH配置X11转发。

什么是x11转发?

X11转发是允许用户启动安装在远程Linux系统上的图形应用程序的方法,并将应用程序窗口(屏幕)转发到本地系统。
远程系统不需要具有X服务器或者图形桌面环境。
因此,使用SSH配置X11转发使用户能够通过SSH会话安全地运行图形应用程序。

用外行的话来说,

  • 我们通过ssh连接到远程系统,
  • 然后我们从该SSH会话启动GUI应用程序(安装在远程系统中),
  • 现在,GUI应用程序在远程系统上运行,但应用程序窗口显示在我们的本地系统上。因此,我们可以在本地系统上使用此远程GUI程序作为我们使用本地安装程序的方式。

明白了吗?
现在让我们继续,看看如何通过SSH会话运行远程GUI应用程序。

在Linux中使用SSH配置X11转发

出于本教程的目的,我将使用以下两个系统:

  • 远程服务器 - CentOS 8最小服务器(无GUI)。
  • 本地系统 - Ubuntu 20.04 LTS与GNOME DE。

配置X11转发是微不足道的。

确保我们在远程SERER系统上安装了"XAUTH"。
如果未安装它,请用root或者sudo用户运行以下命令:

# dnf install xorg-x11-xauth

转到远程系统(在我的情况下,它是CentOS 8),并使用我们喜欢的编辑器编辑"/etc/ssh/ssh_config"文件:

# nano /etc/ssh/ssh_config

添加/修改以下行:

[...]
X11Forwarding yes

按Ctrl + O保存和Ctrl + X关闭文件。
重新启动SSHD服务使更改生效:

# systemctl restart sshd

完毕!我们已配置X11转发。

现在转到客户端系统(在我的情况下,它是Ubuntu 20.04),并通过SSH使用命令访问远程服务器:

$ssh -X Hyman@theitroad

其中-x选项用于通过SSH启用X11转发。
使用远程服务器的用户名和IP地址替换"Hyman @ OniTor"。

我们首次查看以下警告消息。

/usr/bin/xauth: file /root/.Xauthority does not exist

但是,应该在第一个登录期间自动生成".xauthority"文件,因此后续登录应该是正常的。

接下来,从此SSH会话启动任何GUI应用程序。
我已经在CentOS 8服务器中安装了Gedit图形文本编辑器,因此我将使用命令启动它:

# gedit

GEDIT GUI窗口屏幕现在将显示在本地系统中。

我们可以使用本地系统的显示,鼠标和键盘与远程服务器上安装的GEDIT应用程序进行交互。

即使我的CentOS 8服务器没有GUI桌面,我也能够打开GEDIT图形编辑器并将其从我本地Ubuntu系统中使用它。
这是Visual Demo:

配置X11转发putty

如果使用Putty客户端访问远程系统,请在会话选项卡中输入远程系统的IP或者主机名:

接下来,导航到Connection - > SSH - > X11并启用X11转发选项。
单击"打开"以建立新的putty 会话:

输入远程服务器的用户名和密码。
通过PUTTY连接到远程系统后,启动安装在远程服务器中的任何X应用程序。

从本地系统开始与远程GUI应用程序进行交互!