如何配置 Ssh X11 转发?

2025-07-28

我们大部分时候通过 SSH 远程连接服务器,在命令行中输入指令实现操作。 如果你曾经尝试过在服务器上执行 类似 plt.show() 的命令的话,那么你应该知道,图形窗口是无法显示的,为了能够方便便捷地编程,我们希望在本机可以看到这些图形窗口。 这就需要用到 SSH X11 转发了。本文将介绍如何在 VSCode 上配置 X11 转发。

Windows 端

1)下载 VcXsrv(免费开源)并安装(保持默认设置即可)
2)打开 XLaunch(第一步正确安装后,应该会有 XLaunch)
3)Display number 修改为 0
display
4)勾选 Disable access control
sets
5)配置Windows的系统变量
变量名:DISPLAY
变量值:localhost:0.0
6)修改 C:/Users/Username/.ssh/config 文件,添加下面三行(Windows 配置完毕)

Host ...
	HostName ...
	...
	...
	ForwardAgent yes
        ForwardX11 yes
        ForwardX11Trusted yes

服务器端

下面是服务器端需要进行的设置
1)启用 SSH X11 转发

sudo nano /etc/ssh/sshd_config

X11Forwarding yes # 确保以下两行未被注释
X11UseLocalhost no

sudo systemctl restart sshd # restart
 
sudo apt install xauth  # Debian/Ubuntu # install xauth
sudo yum install xauth  # CentOS/RHEL

2)新建 SSH 连接,服务器上运行
echo $DISPLAY
如果有输出,那么不用管;反之,利用
export DISPLAY=localhost:10.0
设置 DISPLAY。
运行 xeyes 这条命令,观察是否弹出窗口,弹出即为配置成功。