防止 CTRL+C 终止 Windows 上的“ForwardX11 yes”SSH 会话

防止 CTRL+C 终止 Windows 上的“ForwardX11 yes”SSH 会话

当我ForwardX11 yes在客户端设置时,CTRL+C 将终止 Windows 10 上的这个 ssh 会话。

我已尝试使用 CTRL+C:

  1. 命令
  2. 电源外壳
  3. Git 重击
  4. VSCode 远程 SSH 工作区中的终端。
  5. Linux 服务器控制台

只有最后两个 CLI 不会终止 ssh 会话。我可以确定,如果我取消设置ForwardX11 yes,一切都会正常工作。

我的 ssh 版本是OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2。我只希望 CTRL-C 执行的操作与在 VSCode Remote SSH 终端或 Linux 服务器控制台中打开ForwardX11 yes设置时执行的操作相同。有什么办法吗?

电源外壳:

PS C:\Users\ihnfsa> ssh [email protected]
Warning: No xauth data; using fake authentication data for X11 forwarding.
X11 forwarding request failed on channel 0
Last login: Thu Oct 27 17:40:29 2022 from 192.168.227.1
athena@ArchLinux1 ~
$ (CTRC+C) Connection to 192.168.227.131 closed.
PS C:\Users\ihnfsa>

VSCode 远程 SSH 工作区中的终端:

athena@ArchLinux1 ~ 
$ (CTRL+C)
athena@ArchLinux1 ~ 
$ 

更新:

我的 SSH 配置:

Host 192.168.227.131
  HostName 192.168.227.131
  User athena
  XAuthLocation "C:\Program Files\VcXsrv\xauth.exe"
  ForwardAgent yes
  ForwardX11 yes
  ForwardX11Trusted yes

sshd_config在服务器端:

AllowAgentForwarding yes
AllowTcpForwarding yes
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost no

我已经在服务器、客户端上安装并启用了xorg-xserver-xvfb、 。xorg-xauthxselVcXsrv

答案1

这是 OpenSSH_for_Windows 中的一个已知错误,请参阅https://github.com/PowerShell/Win32-OpenSSH/issues/1803。这是由于XAuthLocation在您的本地配置中设置了。

如果您删除该配置,Ctrl-C 应该可以正常工作,X 转发也应该可以正常工作,因为您已经这样做了ForwardX11Trusted(尽管您应该确保在调用 SSH 之前在您的环境中DISPLAY正确设置了,通常为127.0.0.1:0,从上面的输出来看,我认为情况并非如此,因为有消息X11 forwarding request failed on channel 0)。

相关内容