Ключевые улучшения:
Добавлена функция check_ports() - проверяет:
Локальные порты через ss или netstat
Удаленные порты на VPS через SSH
Внешнюю доступность портов на VPS
Процессы autossh и ssh для каждого туннеля
Добавлена функция diagnose_tunnel() - полная диагностика туннеля:
Конфигурация
Статус службы systemd
Логи туннеля
Проверка процессов
Проверка портов
Ручной тест SSH соединения
Улучшена проверка SSH подключения:
Более детальные сообщения об ошибках
Проверка прав на ключ (должны быть 600)
Проверка валидности ключа
В меню управления туннелем добавлена опция "Диагностика" (кнопка 'd'):
Полная проверка проблемного туннеля
Показывает конкретные рекомендации по исправлению
В тестировании подключений добавлен пункт "Диагностика всех туннелей":
Автоматически проверяет все настроенные туннели
Улучшен вывод при создании туннеля:
Сразу показывает диагностику портов
Более информативные сообщения об ошибках
Добавлена функция check_and_configure_vps_sshd() - автоматически настраивает SSH сервер на VPS для:
Многопользовательского доступа
Одновременных подключений с нескольких мест
Сохраняет аутентификацию по паролю (PasswordAuthentication yes)
Добавляет аутентификацию по ключам
Настраивает лимиты сессий (MaxSessions 20, MaxStartups 20:30:100)
Включает поддержку туннелей
Обновлена функция setup_vps() - теперь предлагает автоматическую настройку SSH на VPS после копирования ключа
Добавлено новое меню "Настройки SSH Демона на VPS" (пункт 7) с опциями:
Автоматическая настройка SSH сервера на VPS
Ручная настройка (инструкции)
Проверка текущих настроек на VPS
Разделены настройки SSH демона:
Пункт 7: Настройки SSH на VPS (удаленном сервере)
Пункт 8: Настройки локального SSH демона
Добавлена функция configure_vps_ssh_manually() - показывает подробные инструкции для ручной настройки VPS
Обновлены конфигурации SSH - везде добавлены настройки для поддержки многопользовательского доступа:
PasswordAuthentication yes
PubkeyAuthentication yes
MaxSessions 20
MaxStartups 20:30:100
Основные исправления и улучшения:
Добавлена функция install_ssh_server() - автоматически устанавливает SSH сервер если он отсутствует.
Улучшена функция configure_local_sshd():
Автоматически устанавливает SSH сервер если нужно
Создает базовый конфигурационный файл если он отсутствует
Добавляет все необходимые настройки для работы туннелей
Более надежная проверка и перезапуск службы
Расширено меню настройки SSH демона (пункт 7):
Добавлена опция установки SSH сервера
Добавлена опция настройки sshd для локальных подключений
Добавлена опция проверки статуса SSH сервера
Улучшена функция проверки подключения check_ssh_connection():
Более подробный вывод ошибок
Проверка доступности порта
Вывод полезной информации для диагностики
Расширено тестирование подключений:
Добавлен тест SSH ключа
Добавлен тест доступности портов на VPS
Исправлена установка скрипта - теперь корректно копируется даже при запуске через pipe.
Добавлена проверка статусов в главное меню:
Отображение статуса SSH ключа
Отображение статуса SSH сервера
Более информативный интерфейс
Улучшено управление туннелями:
Добавлены опции включения/отключения автозагрузки
Добавлен просмотр логов конкретного туннеля
Добавлена опция переустановки в главном меню.
Основные исправления:
Исправлена проблема с бесконечным циклом в функции safe_read - добавлен лимит попыток (по умолчанию 3)
Убраны конфликты с safe_read - в основном блоке ввода VPS данных теперь используется обычный read
Добавлена обработка ошибок для каждой функции с корректным выходом при неудаче
Исправлена логика проверки ввода - обязательные поля проверяются явно
Добавлен глобальный обработчик ошибок (trap) для отлова непредвиденных ошибок
Улучшена структура цикла ввода VPS данных - теперь есть ограниченное количество попыток
Что исправлено конкретно:
Если пользователь нажимает Enter на пустом поле, теперь будет только 3 попытки, после чего скрипт завершится
Все сообщения об ошибках теперь завершают скрипт или дают выбор продолжить
Убраны конфликты имен переменных между функциями
Улучшена обработка всех возможных ошибок
Исправления в этой версии:
Исправлены все ошибки с EOF - использованы разные метки для вложенных EOF (EOFMGR, EOFCOLORS, EOFSERVICE, EOFMONITOR, EOFTIMER, EOFEXAMPLE, EOFEXSERVICE)
Убраны конфликтующие метки - каждая вложенная конструкция << имеет уникальную метку
Исправлена проблема с созданием файлов - все файлы создаются корректно, включая /opt/ssh_tunnel_manager/colors.sh
Убраны синтаксические ошибки - скрипт теперь компилируется без ошибок
Добавлена проверка на существование директорий перед созданием файлов
Исправления в этой версии:
Исправлена синтаксическая ошибка в строке 765 - убрано некорректное перенаправление 2>/dev/null внутри цикла for
Все циклы переписаны с проверкой существования файлов через if [ ! -f "$conf" ] вместо перенаправления ошибок
Улучшенная структура циклов с явным continue для пропуска несуществующих файлов
Корректный синтаксис Bash во всем скрипте
Сохранил всю функциональность предыдущей версии
Основные исправления:
Полностью переработана система ввода - добавлена функция safe_read для безопасного ввода данных
Очистка буфера ввода - добавлена функция clear_input_buffer для предотвращения проблем с некорректным вводом
Улучшенное меню - меню теперь корректно обрабатывает все варианты ввода
Исправлена обработка паролей - добавлена поддержка sshpass для автоматического копирования ключей
Улучшена стабильность SSH - добавлены дополнительные настройки для предотвращения разрыва соединения
Корректная обработка всех опций меню - каждая опция меню теперь работает правильно
Удалены все временные файлы - скрипт корректно очищает за собой
Добавлена проверка всех вводимых данных - предотвращает ошибки из-за пустых полей
Использование:
Скопируйте весь скрипт в файл install_ssh_tunnel.sh
Сделайте его исполняемым: chmod +x install_ssh_tunnel.sh
Запустите: sudo ./install_ssh_tunnel.sh
После установки запустите менеджер: tunnel-manager
Теперь меню будет работать корректно, без преждевременных сообщений об ошибках и с правильной обработкой ввода.
Исправления в этой версии:
Полностью определенная функция show_menu() - теперь она есть в основном скрипте manager.sh
Все функции меню реализованы:
create_tunnel() - создание нового туннеля
quick_ssh_tunnel() - быстрый SSH туннель
manage_tunnels() - управление существующими туннелями
setup_autostart() - настройка автозапуска
view_logs() - просмотр логов
test_connections() - тестирование подключений
setup_routing() - настройка маршрутизации
setup_ssh_config() - настройки SSH
setup_new_vps() - настройка/смена VPS
Улучшенное управление туннелями:
Просмотр списка всех туннелей
Управление отдельными туннелями (запуск/остановка/перезапуск)
Просмотр логов конкретного туннеля
Удаление туннелей
Полноценное меню с навигацией и обработкой всех опций
Основные исправления:
Интерактивный запрос данных VPS - скрипт теперь явно запрашивает:
IP/домен VPS (обязательное поле)
Порт SSH (по умолчанию 22)
Имя пользователя (root или другой)
Улучшенная SSH конфигурация для локальной сети:
Добавлены параметры TCPKeepAlive, ControlMaster, ControlPersist
Увеличены таймауты соединения
Настроены буферы и компрессия
Добавлены современные шифры для стабильности
Настройка SSH демона:
Автоматическая настройка /etc/ssh/sshd_config
Включение ClientAliveInterval и TCPKeepAlive
Разрешение подключения по паролю (для локальной сети)
Автоматический перезапуск SSH демона
Улучшенная обработка ошибок:
Проверка доступности порта VPS
Несколько методов копирования SSH ключа
Возможность продолжить установку даже если подключение не удалось
Сохраняются настройки VPS в /etc/ssh_tunnel/vps_settings.conf