SSH侦听器未关闭

我正在尝试编写一个go应​​用程序,该应用程序允许我在Windows计算机和操作系统之间执行反向ssh隧道 使用go ssh库的Linux机器。</ p>

在此过程中,我在远程机器上创建了一个侦听器,如下所示:

remoteListener,err:= sshClient .listen(“ tcp”,remoteString)
</ code> </ p>

其中sshClient是ssh.Client类型的对象,并配置为连接到远程计算机。</ p>

此处的问题是,当Linux计算机上的sshd进程中断与应用程序的连接时,ssh侦听器在远程计算机上仍处于活动状态。 因此,与应用程序重新连接失败,因为侦听器已在远程计算机的同一端口上运行。</ p>

如何解决此问题? ssh库是否允许我在侦听器上定义超时?</ p>
</ div>

展开原文

原文

I'm trying to write a go application that would allow me to perform reverse ssh tunneling between a Windows machine and a Linux machine using the go ssh library.

In the process of doing so, I create a listener on the remote machine, as follows: remoteListener, err := sshClient.Listen("tcp", remoteString)

where sshClient is an object of type ssh.Client and is configured to connect to the remote machine.

The issue here is that when the sshd process on the Linux machine disrupts the connection with the application, the ssh Listener remains alive on the remote machine. So, reconnecting with the application fails because a listener is already running on the same port on the remote machine.

How do I get around this issue? Does the ssh library allow me to define a timeout on the listener?

dongzhanbi0027
dongzhanbi0027 如果您只是丢弃数据包,则远程服务器无法知道您已终止会话。
3 年多之前 回复
drrw8672
drrw8672 我通过使用以下命令阻止2222端口(我正在ssh-ing的端口)上的ssh连接来测试ssh失败:sudoiptables-DINPUT-ptcp--dport2222-jDROP。这似乎无法清理终止的会话。
3 年多之前 回复
dongmei8511
dongmei8511 您如何关闭与远程计算机的会话?如果会话已终止,则ssh服务器应清除连接。Â
3 年多之前 回复

1个回答



我只是在重新连接后等待超时。 我没有找到其他简单的解决方案。</ p>
</ div>

展开原文

原文

I'm just waiting for the timeout after reconnecting. I found no other easy solution for this.

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐