如何在Linux中使用SSH配置X11转发
今天,我们将学习关于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应用程序进行交互!