У нас є деяке обладнання, яке ми встановлюємо в місцях розташування наших клієнтів. Це обладнання підключається до нашого ssh-сервера і встановлює зворотний ssh-тунель, щоб ми могли отримати доступ до декількох клієнтських систем для моніторингу.
Все працює добре, поки не з’явиться нечистий відключення сеансу SSH.
Коли це станеться, на нашому сервері SSH порти, які використовувались зворотним тунелем, залишаються застряглими в режимі LISTENING, і коли наше віддалене обладнання в кінцевому підсумку намагається автоматично підключитися та відновити свої тунелі, воно не вдається з помилкою.
Попередження: віддалене переадресація портів не вдалося прослухати порт XXXX
Я перевірив, чи не було проблеми з нашим сервером SSH або клієнтом, спробувавши чисте відключення і звичайно, що звільняє порти просто чудово. Коли я імітую поломку підключення (наприклад, від'єднайте порт Ethernet від клієнтського обладнання), у нас є та сама проблема, яку я описав вище.
Який правильний спосіб вирішення цієї ситуації? Майте на увазі, що це тунелі, що перевернулися, тому що б там не було потрібно зробити на сервері SSH. В ідеалі мені потрібен сервер ssh, щоб миттєво усвідомити, що сеанс SSH, що розміщує тунелі, не працює і звільнити порти, які він використовував. Я думаю, що рішення може включати вбивство відповідного SSH-процесу, але мені потрібно бути обережним, тому у нас є кілька клієнтів, що підключаються до одного і того ж ssh-сервера, і я не хотів би їх вимкнути в автономному режимі.
Будучи такою зрілою, я впевнений, що в SSHD є якась вбудована функція для вирішення цього питання, але я просто не можу це зрозуміти.
Будь ласка, порадьте, тому я не повинен повертатися до адміністрування вікон Windows ...
FYI: Я запускаю це на дистрибутиві на основі Debian.