当我ForwardX11 yes
在客户端设置时,CTRL+C 将终止 Windows 10 上的这个 ssh 会话。
我已尝试使用 CTRL+C:
- 命令
- 电源外壳
- Git 重击
- VSCode 远程 SSH 工作区中的终端。
- 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-xauth
xsel
VcXsrv
答案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
)。