Windows 下 SSH + Linux 图形界面(X11 转发)方案总结


方案1, Xshell + Xmanager(下载成品软件,步骤少)

架构

Windows
├─ Xshell(SSH客户端,网上下载)
└─ Xmanager(X11服务器,网上下载)

SSH -Y

银河麒麟 / Linux

优缺点

  • 配置简单
  • 自动处理 DISPLAY
  • 自动配置 X11 forwarding
  • Qt 程序兼容性最好
  • 适合长期图形开发
  • Xmanager只有30天免费试用、

使用步骤

  1. 安装 Xshell 与 Xmanager
  2. 启动 Xmanager(一直在后台挂着)
  3. 使用Xshell 登录服务器
  4. 通过 echo $DISPLAY 验证 DISPLAY 是否生成

常见问题

  • DISPLAY 为空:Xmanager 未启动

方案2,PowerShell + VcXsrv/XLaunch

架构

Windows
├─ PowerShell(OpenSSH)
└─ VcXsrv/XLaunch(X11服务器,网上下载,开源,一直免费)

ssh -Y

银河麒麟 / Linux

优缺点

  • 完全原生、免费
  • 不依赖 Xshell
  • 适合命令行用户
  • 配置复杂
  • 容易踩坑
  • OpenSSH 不自动处理 DISPLAY

XLaunch 推荐配置

  • Multiple windows
  • Start no client
  • Disable access control(测试阶段)

PowerShell 配置

关键步骤:必须手动设置 DISPLAY
$env:DISPLAY="localhost:0.0"
ssh -Y username@ipaddress
进入后,Linux 侧验证:
echo $DISPLAY
有数值输出一般是类似于下图的
在这里插入图片描述

具体配置

  1. 在windows侧,添加ssh配置,下图路径下添加下图中的配置文件,文件名为config(无后缀)
    在这里插入图片描述
    2.在powershell里,输入:$env:DISPLAY="localhost:0.0"
    3.使用ssh登录远程服务器,ssh -Y 用户名@ip_address,例如ssh -Y xiaoming@192.168.1.6
    4.在服务器内输入echo $DISPLAY,会有数值
    在这里插入图片描述
    5.可以使用有图形化界面的软件,例如gedit:
    在这里插入图片描述

Linux 服务端配置

编辑 sshd 配置:
vi /etc/ssh/sshd_config
确保包含:

X11Forwarding yes
X11UseLocalhost yes
X11DisplayOffset 10

重启 sshd:
systemctl restart sshd
检查 xauth:
which xauth
如果缺失:
yum install -y xorg-x11-xauth

PowerShell + VcXsrv 实际踩坑记录

  1. DISPLAY 为空
    最终日志:X11 forwarding requested but DISPLAY not set
  • 一般是VcXarv没启动,或者windows侧的config写的不对,或者没在PS里$env:DISPLAY="localhost:0.0"
  1. VcXsrv 已启动但仍失败
  • Windows OpenSSH 不会自动设置 DISPLAY,在PS里$env:DISPLAY="localhost:0.0"
  1. config 不存在
    需手动创建 C:\Users\用户名.ssh\config
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐