使用 Windows 自带 ssh 的 X11转发功能并配置 ssh 和 VSCode

· 1035字 · 3分钟

注意本教程也适用于 MacOS 和 Linux 哦。

1. 确认自带的 ssh 支持 X11 forwarding 🔗

一般来说 Windows 10 version 1809 及之后的 Windows 版本都内置了 ssh 客户端,这个客户端是带有 X11 功能的。但是,直到 ssh 客户端到 version 8.1p1 时才完整的实现了对 X11 forwarding 的支持。

打开一个命令行或者 Powershell 窗口, 输入一下指令,如果你的版本大于等于 8.1p1 , 那么恭喜你,你可以接下来的工作了。否则,请更新你的 Windows 版本。

ssh -V
#输出: OpenSSH_for_Windows_8.6p1, LibreSSL 3.4.3

2. 下载安装 X11 server 🔗

下载下面任意软件中的一款,用于安装 X11 server

  1. VcXsrv 免费工具
  2. X410 收费工具

VcXsrv 配置 🔗

下载并安装 VcXsrv。 打开 XLauncher,选择 Mulitiple windows,并点击下一页。选择 Start no client , 点击下一页,选择前两个。点击下一页,然后保存配置文件到本地。点击完成,X11 服务器就打开了。

pC2pJE9.png

pC2p3B4.png

pC2p1uF.png

X410 配置 🔗

从 Windows Store 购买 X410 并安装。打开 X410 会自动最小化运行。在任务栏找到一个类似于 X 的图标,点击打开。 一定确定勾选 LoopBack。此时,X11 服务器就正式运行了。

pC2p8HJ.png

3. 设置系统变量 🔗

ssh 在运行 X11 转发的时候会读取 DISPLAY 变量来获得 X11 服务器的地址。所以我们需要在系统变量中指定 DISPLAY 的值为服务器地址。有临时的和永久的两种方式:

  1. 临时的方法
    1. CMD:
      1. 设置: set DISPLAY=127.0.0.1:0
      2. 查看: echo %DISPLAY%
    2. Powershell
      1. 设置: $env:DISPLAY="127.0.0.1:0.0"
      2. 查看: echo $env:DISPLAY
  2. 永久的方法(powershell 和 CMD 都可以)
    1. setx DISPLAY "127.0.0.1:0.0"

注意设置了永久的方法之后需要重启一下当前的终端才可以,比如 WindowsTerminal 需要重启。

4. 测试 X11 转发功能 🔗

既然已经安装好了 X11, 就让我们来测试一下 X11 转发功能吧。打开命令行连接你的服务器:

ssh -XY <your_user_id>_@_<server_address>

然后在你的服务器上打开:

xcalc

pC2pt41.png

应该会出现一个计算器啦。如果没有的话,请检查你的服务器是否安装了 x11-apps

5. 更改你的 ssh 配置文件 ~/.ssh/config 🔗

使用你喜欢的编辑器打开你的配置文件 ~/.ssh/config 文件,在 HOST 下面添加如下的选项:

Host test
    Hostname test.com
    Port 22
    User test 
    ForwardX11 yes
    ForwardX11Trusted yes

额外添加的这两行等同于 ssh-XY 选项。

现在你就可以在 MacOS、Windows、Linux 默认启用 sshX11 转发功能了。至此,我们已经可以直接在使用 VSCode 的远程功能时在 Terminal 里面打开远程 GUI 程序了。

6. 测试 VSCode 远程终端直接打开 GUI 程序 🔗

自从 Windows 内置了 ssh 以后,VSCode 的 remote 插件都使用的是内置的 ssh 访问远程服务器,所以当我们配置好了内置的 sshX11 转发功能之后,我们就可以在 VSCode 的远程终端里面访问远程服务器上的 GUI 程序了。

打开一个 VSCode 程序,远程连接到你的服务器。打开一个 Terminal, 输入: xcalc。你应该看到一个如上图所示的计算器出现在你的眼前。

7. 关于 Linux 的使用注解 🔗

Linux 默认有 X11 服务器,所以不需要额外的软件。所以可以直接跳到 5。

8. 关于 MacOS 的使用注解 🔗

MacOS 默认是不带 X11 服务器的,所以需要另外安装: XQuartz 。下载安装并运行即可。