在Windows中,我在Windows启动时创建一个预定任务:
C:\cygwin64\bin\ssh.exe -R 2222:127.0.0.1:3389 user@PublicHost
为了在公共ip服务器上公开我的rdp服务,我可以成功地连接rdp,但是我在任务管理器中找不到ssh.exe,当我关闭窗口时,有时PublicHost的2222端口没有被释放,所以稍后我再次引导窗口,ssh.exe会给我一个警告,端口转发失败。
有没有一种方法可以要求PublicHost释放端口(我在PublicHost上没有根访问权限)?
发布于 2019-07-10 14:45:21
我建议查看ClientAliveCountMax
和ClientAliveInterval
sshd_config选项--这将帮助sshd检测到以不受控制的方式下降的连接,并在这种情况下清除它。
发布于 2016-09-08 16:02:47
您能否在前台运行ssh,以便获得shell提示符并只注销ssh会话?
因为如果窗口正在关闭和终止ssh.exe,则应该关闭该端口。如果服务器没有发布它,发送您自己的杀死信号可能会产生同样的效果(如果您可以在任务管理器中找到它)。
或者您也可以登录(手动或脚本)到PublicHost,并在那边删除一些东西(比如UID的/bin/bash ),这样就可以删除连接了吗?
发布于 2016-09-09 03:48:38
如果您只是连接到PublicHost的端口2222,它应该尝试通过隧道发送通信量。这将超时(几分钟后)或接收重置响应(立即),这将导致连接被关闭和sshd进程退出。
您可以使用任意数量的工具来完成此操作,但是有一种方法可以在Windows中自动完成:
C:\cygwin64\bin\ssh.exe user@PublicHost "echo x | nc 127.0.0.1 2222"
https://serverfault.com/questions/801908
复制相似问题