Mamy trochę sprzętu, który instalujemy w lokalizacjach naszych klientów, który łączy się z naszym serwerem ssh i ustanawia tunel zwrotny ssh, abyśmy mogli uzyskać dostęp do kilku systemów klienckich w celach monitorowania.
Wszystko działa dobrze, dopóki nie nastąpi nieczyste rozłączenie sesji SSH.
Kiedy tak się dzieje, na naszym serwerze SSH porty, które były używane przez tunel zwrotny, utknęły w trybie SŁUCHANIA, a kiedy nasz zdalny sprzęt w końcu próbuje automatycznie połączyć się ponownie i ponownie ustanowić swoje tunele, kończy się to błędem
Ostrzeżenie: nie można przekazać zdalnego portu dla portu nasłuchiwania XXXX
Testowałem, czy wystąpił problem z naszym serwerem lub klientem SSH, próbując czystego rozłączenia i kursu, który uwalnia porty w porządku. Kiedy symuluję awarię połączenia (na przykład odłącz port Ethernet sprzętu klienta), mamy ten sam problem, który opisałem powyżej.
Jaki jest właściwy sposób radzenia sobie z tą sytuacją? Pamiętaj, że są to odwrócone tunele, więc wszystko, co się stanie, musi zostać wykonane na serwerze SSH. Idealnie potrzebuję serwera ssh, aby natychmiast zorientować się, że sesja SSH hostująca tunele jest wyłączona i zwolnić porty, których używała. Wydaje mi się, że rozwiązaniem może być zabicie danego procesu SSH, ale muszę być ostrożny, ponieważ mamy wielu klientów łączących się z tym samym serwerem ssh i nie chciałbym ich wyrzucać do trybu offline.
Będąc tak dojrzałym, jestem pewien, że SSHD ma jakąś wbudowaną funkcję do obsługi tego, ale po prostu nie mogę tego rozgryźć.
Radzę, więc nie muszę wracać do administrowania skrzynkami Windows ...
FYI: Używam tego w dystrybucji opartej na Debianie.
źródło