You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu SSH X11转发异常:本地终端可用VS Code集成终端失效

SSH X11转发在VS Code集成终端无法显示GUI的解决方案

本地和远程主机均为Ubuntu 20,已完成SSH X11转发配置:

  • 本地~/.ssh/config配置:
    ForwardX11 Yes
    ForwardX11Trusted Yes
    ForwardAgent Yes
    
  • 远程主机/etc/ssh/sshd_config已启用X11Forwarding yes

系统终端运行xeyes等GUI应用正常,但VS Code集成终端执行时出现报错:

Error: Can't open display: localhost:12.0

或伴随GLFW初始化失败及段错误信息。

解决方案

1. 对比DISPLAY环境变量

分别在系统终端和VS Code集成终端执行:

echo $DISPLAY

若VS Code终端输出为空或与系统终端不一致,说明环境变量未正确传递。

2. 配置VS Code远程终端继承DISPLAY

打开VS Code设置(快捷键Ctrl+,),搜索remote.SSH.remoteEnvironment,点击「编辑settings.json」,添加以下配置:

"remote.SSH.remoteEnvironment": {
    "DISPLAY": "${localEnv:DISPLAY}"
}

该配置让VS Code远程终端直接继承本地SSH会话的DISPLAY变量。

3. 检查远程shell配置文件

查看远程主机的~/.bashrc或~/.zshrc(根据你使用的shell),确认没有重置DISPLAY的代码,例如:

unset DISPLAY

或手动设置DISPLAY的语句,如有则注释掉,避免覆盖SSH传递的变量。

4. 重启远程会话

断开VS Code的远程连接,重新连接主机,确保配置生效。

5. 临时应急方案

若上述配置未立即生效,可在VS Code集成终端手动设置DISPLAY(替换为系统终端的对应值):

export DISPLAY=localhost:12.0

再尝试运行GUI应用,验证是否正常。

内容的提问来源于stack exchange,提问作者Derik Wu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 09:14:58