Temos alguns hardwares que instalamos nos locais de nossos clientes, que se conectam ao nosso servidor ssh e estabelecem um túnel ssh reverso para que possamos obter acesso a vários sistemas clientes para fins de monitoramento.
Tudo funciona bem até que haja uma desconexão imunda da sessão SSH.
Quando isso acontece, em nosso servidor SSH, as portas que foram usadas pelo túnel reverso permanecem paralisadas no modo LISTENING e, quando nosso hardware remoto finalmente tenta se reconectar automaticamente e restabelecer seus túneis, ela falha com o erro
Aviso: falha no encaminhamento de porta remota para a porta de escuta XXXX
Testei se havia um problema com o servidor ou cliente SSH, tentando uma desconexão limpa e o curso que libera as portas corretamente. Quando simulo uma falha de conexão (desconecte a porta Ethernet do hardware do cliente, por exemplo), temos o mesmo problema que descrevi acima.
Qual é a maneira correta de lidar com essa situação? Lembre-se de que esses são túneis invertidos; portanto, o que quer que aconteça, precisa ser feito no servidor SSH. Idealmente, eu preciso do servidor ssh para perceber instantaneamente que a sessão SSH que hospeda os túneis está inoperante e libera as portas que estava usando. Acho que a solução pode envolver a morte do processo SSH em questão, mas preciso ter cuidado com isso, pois temos vários clientes se conectando ao mesmo servidor ssh e não gostaria de expulsá-los offline.
Sendo tão maduro, tenho certeza de que o SSHD tem algum tipo de recurso interno para lidar com isso, mas simplesmente não consigo descobrir.
Por favor, informe para que eu não precise voltar a administrar as caixas do Windows ...
FYI: Estou executando isso em uma distribuição baseada no Debian.