Closed zhtianhe closed 1 year ago
我手上没有 windows 设备暂时没法验证, 但是我的 Mac/Linux 设备上是没有这个现象的
理论上 ctrl+c
的信号应该是发给 ssh,
但按照你的说法 windows 下可能有两种原因
有几件事可能需要确认
ctrl+c
时, 是否弹出? https://github.com/wzshiming/bridge/blob/b956c164cccfbe4d14ecb8b0b34235b6802a9a30/cmd/bridge/main.go#L77 1、win git-bash 中
第一次按下 ctrl+c
时, 弹出:
2023-07-13T10:42:23.910+0800 INFO bridge/main.go:77 Wait for the existing task to complete, and exit directly if the signal occurs again
第二次 ctrl+c
时, 弹出:
client_loop: send disconnect: Broken pip
powershell、cmd 中 ctrl+c
、vscode ssh 是没有问题的
ssh.exe -o "ProxyCommand=x:\xxx\gost\bridge-win64.bin -p %h:%p -p socks5://ProxyUser:ProxyPass@ProxyIP:ProxyPort " sshUser@sshIp
综上所述: 判断 win git-bash ssh 环境问题导致
2、corkscrew 不存在该问题,缺点;对环境有依赖、不支持 代理用户口令验证
3、参考:gost 工具也很不错,GO语言实现的安全隧道 暂时没有找到 ProxyCommand
相关配置。
gost 这个我以前还真不知道, 看起来只做代理 server 来着, 我这是 client/server 合一的, 所以 server 部分的功能都是重叠的, 不过看起来 server 部分的功能比 bridge 完善
由于 gost 没做 client, 所以它不会遇到你说的问题也不会支持 ProxyCommand (除非重构了支持 client)
测试1:
执行
ssh -o "ProxyCommand=./bridge-win64.bin -p %h:%p -p socks5://xx:xx@ip:xxx "xxxx@xxxxx
登录shell 终端后 两次ctl+c
直接退出了,是否需要优化 bridge 对信号量的处理?测试2: 配置在 ~/.ssh/conf 同样问题
测试3:在 vscode 的 Read more about SSH config files 没有问题
测试4:使用 corkscrew 是没有问题的
ProxyCommand corkscrew.exe localhost 10805 %h %p