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

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 服务器就打开了。

X410 配置

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

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

应该会出现一个计算器啦。如果没有的话,请检查你的服务器是否安装了 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 。下载安装并运行即可。

相关推荐
苏生Susheng6 小时前
【软件实施】Linux系统Shell脚本教程
linux·运维·服务器·chrome·spring boot·学习·实施
2601_962304916 小时前
把出片接进自动化流水线:2026 年批量 AI 视频生成工具的脚本契约与同类项目对照
运维·人工智能·自动化
Ruiery6 小时前
Linux 6.6内核 IOMMU 深度解析(七):DMA API 与 IOMMU 集成 — 从 dma_map_single 到 iommu_map
linux·运维·服务器
分支预测失败6 小时前
RISC-V AIA 中断架构实战:从 PLIC 到 APLIC 与 IMSIC 的迁移
linux·后端
GeW6 小时前
RHCE学习拿证计划:锁定核心考点,实现备考效率最大化
linux
snow@li6 小时前
服务器运维:Alibaba Cloud Linux 4 LTS 64位 根目录全景深度解析文章
linux·运维·服务器
实战派K8S&DB6 小时前
《基于 Dify + FastAPI + PyTiDB 搭建大模型驱动的 TiDB 智能运维 Agent》
运维·数据库·分布式·云原生·tidb·fastapi
苏生Susheng7 小时前
【软件实施】Linux企业运维常用命令手册
java·linux·运维·服务器·springboot·springcloud·软件实施
额额额对了7 小时前
Linux 进程间通信(IPC)核心机制:消息队列、共享内存与信号量详解
linux·网络·网络协议
zx_741484817 小时前
【Linux入门】Linux 安装:VMware Workstation Pro 安装 CentOS 7 保姆级图文教程
linux·centos