反向SSH隧道由于多个连接和ssh重启而失败

我有一个远程摄像头,通过反向通道连接到防火墙的针孔。 我正在使用autossh来维护链接。 我有crontab作业在启动时运行以下bash脚本,此后每30分钟运行一次。 如果ssh停止,autossh会重新启动它。 如果autossh停止,该脚本将重新启动。 这是一个腰带和大括号的方法。

#!/bin/bash #runs the autossh command # sets up a reverse tunnel # ver 1.0 30 Apr 2017 logger "Running auto_ssh_running.sh" TST=$(ps -A | grep autossh -c) if [ $TST -eq 0 ] then logger "Restarting autossh" autossh -f -M0 dynamicIP.no-ip.biz -l root -NR 9001:localhost:22 -p 12345 -i /home/dazz/.ssh/id_rsa -vvv fi 

这个命令在没有-f选项的情况下可以在控制台上正常工作

我的防火墙表示有两个连接到传入端口。

 20:27:11 sshd[426] Accepted publickey for root from 111.189.94.66 port 9161 ssh2: 20:23:46 sshd[394] error: channel_setup_fwd_listener_tcpip: cannot listen to port: 9001 20:23:46 sshd[394] error: bind: Address already in use 20:23:46 sshd[394] Accepted publickey for root from 111.189.94.66 port 9171 ssh2: 

当只有一个连接时,反向通道工作。 我可以通过防火墙login。

networking摄像机服务器系统日志项从启动是:

 Jul 6 19:55:01 trackcam3 CRON[9267]: (root) CMD (/home/darren/auto_ssh_running.sh) Jul 6 19:55:01 trackcam3 logger: Running auto_ssh_running.sh Jul 6 19:56:58 trackcam3 systemd[1]: Started Turn on SSH if /boot/ssh is present. Jul 6 19:56:58 trackcam3 CRON[552]: (root) CMD (/home/darren/auto_ssh_running.sh) Jul 6 19:56:58 trackcam3 logger: Running auto_ssh_running.sh Jul 6 19:56:58 trackcam3 logger: Restarting autossh Jul 6 19:56:58 trackcam3 autossh[597]: port set to 0, monitoring disabled Jul 6 19:56:58 trackcam3 autossh[623]: starting ssh (count 1) Jul 6 19:56:58 trackcam3 autossh[623]: ssh child pid is 624 Jul 6 19:56:59 trackcam3 autossh[623]: ssh exited with error status 255; restarting ssh Jul 6 19:56:59 trackcam3 autossh[623]: starting ssh (count 2) Jul 6 19:56:59 trackcam3 autossh[623]: ssh child pid is 676 Jul 6 19:56:59 trackcam3 autossh[623]: ssh exited with error status 255; restarting ssh Jul 6 19:56:59 trackcam3 autossh[623]: starting ssh (count 3) 

所以多重连接似乎是问题的一部分。 ssh似乎不断地停止并重新启动。

任何build议来解决这个问题将是受欢迎的。 请注意,上面的信息已被清除敏感数字等