Nous avons un certain matériel que nous installons chez nos clients, ce matériel se connecte à notre serveur ssh et établit un tunnel ssh inverse afin que nous puissions accéder à plusieurs systèmes clients à des fins de surveillance.
Tout fonctionne bien jusqu'à ce qu'il y ait une déconnexion impure de la session SSH.
Lorsque cela se produit, sur notre serveur SSH, les ports utilisés par le tunnel inverse restent bloqués en mode ECOUTE et lorsque notre matériel distant essaie finalement de se reconnecter automatiquement et de rétablir ses tunnels, il échoue avec l'erreur
Avertissement: le transfert de port distant a échoué pour le port d'écoute XXXX
J'ai testé s'il y avait un problème avec notre serveur ou client SSH en essayant une déconnexion propre et un cours qui libère très bien les ports. Lorsque je simule un échec de connexion (déconnectez le port Ethernet du matériel client par exemple), nous avons le même problème que celui décrit ci-dessus.
Quelle est la bonne façon de gérer cette situation? Gardez à l'esprit que ce sont des tunnels inversés, donc tout ce qui se passe doit être fait sur le serveur SSH. Idéalement, j'ai besoin du serveur ssh pour réaliser instantanément que la session SSH hébergeant les tunnels est en panne et libérer les ports qu'il utilisait. Je suppose que la solution pourrait impliquer de tuer le processus SSH concerné, mais je dois faire attention à cela car nous avons plusieurs clients se connectant au même serveur ssh et je ne voudrais pas les mettre hors ligne.
Étant si mature, je suis sûr que SSHD a une sorte de fonctionnalité intégrée pour gérer cela, mais je ne peux pas le comprendre.
S'il vous plaît avisez-moi donc je n'ai pas à revenir à l'administration des boîtes Windows ...
Pour info: je lance ceci sur une distribution basée sur Debian.