我试图编写一个go应用程序,允许我使用go ssh库在Windows机器和Linux机器之间执行反向ssh隧道。
在这样做的过程中,我在远程机器上创建一个监听器,如下所示:
remoteListener, err := sshClient.Listen("tcp", remoteString)
其中sshClient是ssh.Client类型的对象,并配置为连接到远程计算机。
这里的问题是,当Linux机器上的sshd进程中断与应用程序的连接时,ssh Listener在远程计算机上保持活动状态。因此,重新连接应用程序失败,因为侦听器已在远程计算机上的同一端口上运行。
如何解决此问题? ssh库是否允许我在侦听器上定义超时?
答案 0 :(得分:0)
我只是在重新连接后等待超时。我找不到其他简单的解决办法。