Windows下SSH转发X
在使用 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 的,比较清晰。