在使用 SSH 连接时,偶尔需要临时使用一下图形界面,这时候可以使用转发 X 的方法实现。在 Windows 下,这需要以下几步:

  • 开启 X Server,可以使用 VcXsrv,运行 xlaunch.exe,选择 Multiple windows -> Display Number = -1 -> Start no client,点击完成后会自动退到任务栏中。

  • 此时默认的 X Server 开在localhost:0.0,需要设置环境变量说明,在 PowerShell 中使用powershell $env:DISPLAY='127.0.0.1:0.0'

  • SSH 配置文件(C:/Users/<用户>/.ssh/config)中需要设置
    Host XXX
    ForwardAgent yes
    ForwardX11 yes
    ForwardX11Trusted yes
    
  • 如果临时使用,上一步可以改为在连接时使用参数-XY

  • 连接 SSH,ssh XXX,如果不成功可以用ssh XXX -vvv查看日志,如果看到X11 forwarding requested but DISPLAY not set则前面第二步没有设置。

xauth错误

如果 xauth 出现错误,可以strace xauth list,如果在等待 ~/.Xauthority-c, 可以尝试rm ~/.Xauthority*https://unix.stackexchange.com/questions/215558/why-am-i-getting-this-message-from-xauth-timeout-in-locking-authority-file-ho

画面模糊

在高分屏可能画面经过缩放,显得比较模糊,这时候可以参考https://sourceforge.net/p/vcxsrv/discussion/986201/thread/86c22a03/,在 vcxsrv.exe 的属性->兼容性->更改高dpi设置中将高分辨率缩放替代改为“应用”。这样 X 转发的像素和屏幕像素会变成 1:1 的,比较清晰。