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

今天,我们将学习一个鲜为人知、有趣且有用的 Linux 特性。 我相信你们中的大多数人都知道 SSH。 我们可以通过 SSH 安全地访问远程 Linux 系统。 但是,您是否知道可以通过 SSH 转发 X 以远程运行图形应用程序? 是的! 这种机制被称为 X11转发. 在本指南中,我们将在 Linux 中使用 SSH 配置 X11 转发。

什么是X11转发?

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

用通俗的话来说,

  • 我们通过 SSH 连接到远程系统,
  • 然后我们从那个 SSH 会话启动一个 GUI 应用程序(安装在远程系统中),
  • 现在,GUI 应用程序在远程系统上运行,但应用程序窗口出现在我们的本地系统上。 所以我们可以在本地系统上使用这个远程 GUI 程序,就像我们使用本地安装的程序一样。

清除? 现在让我们继续看看如何通过 SSH 会话运行远程 GUI 应用程序。

在 Linux 中使用 SSH 配置 X11 转发

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

  • 远程服务器 – CentOS 8 最小服务器(无 GUI)。
  • 本地系统 – 带有 Gnome DE 的 Ubuntu 20.04 LTS。

配置 X11 转发很简单。

确保你已经安装 “xauth” 在您的远程服务器系统上。 如果未安装,请以 root 身份运行以下命令或 sudo 用户:

# dnf install xorg-x11-xauth

转到您的远程系统(在我的情况下是 CentOS 8)并编辑 “/etc/ssh/sshd_config” 使用您喜欢的编辑器创建文件:

# vi /etc/ssh/sshd_config

添加/修改以下行:

[...] X11Forwarding yes

在 Linux 中使用 SSH 配置 X11 转发

退出 键和类型 :wq 保存和 close 文件。

重新启动 sshd 服务以使更改生效:

# systemctl restart sshd

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

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

$ ssh -X [email protected]

这里, -X 选项用于通过 SSH 启用 X11 转发。 代替 ”[email protected]” 使用远程服务器的用户名和 IP 地址。

您将在第一时间看到以下警告消息。

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

但是,那 .Xauthority 文件应该在第一次登录时自动生成,因此后续登录应该没问题。

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

# gedit

gedit GUI 窗口屏幕现在将出现在您的本地系统中。