Служба SSH-тоннель на Windows Server
Прошу помощи, поделиться рабочими вариантами настройки постоянного SSH-тоннеля между терминальным сервером на Windows и VPN сервером на VDS. Нужно чтобы подключение работало как служба и переподключалось при разрыве. Вроде не сложная задача, но не могу решить.Идеально подходит PersistentSSH, но там для сервера только TRIAL. Поделитесь, пожалуйста, рабочими вариантами решения.
Настройка постоянного SSH-туннеля между терминальным сервером на Windows и VPN-сервером на VDS может быть выполнена с использованием OpenSSH и службы Windows. Вот пошаговая инструкция:
### 1. Установка OpenSSH на Windows
1. Установите OpenSSH Client:
- Откройте "Параметры" -> "Приложения" -> "Дополнительные компоненты".
- Нажмите "Добавить компонент" и выберите "OpenSSH Client".
- Установите его.
2. Убедитесь, что OpenSSH доступен:
- Откройте командную строку и выполните ssh -V, чтобы убедиться, что OpenSSH установлен.
### 2. Создание SSH-туннеля
1. Создайте SSH-ключи (если их нет):
- Выполните команду:
ssh-keygen -t rsa -b 4096
- Сохраните ключи в стандартной папке (например, C:\Users\ВашеИмя\.ssh\).
2. Скопируйте публичный ключ на VDS:
- Скопируйте содержимое файла id_rsa.pub в ~/.ssh/authorized_keys на вашем VDS.
### 3. Настройка SSH-туннеля
1. Создайте скрипт для SSH-туннеля:
- Создайте файл tunnel.bat с содержимым:
ssh -o ServerAliveInterval=60 -o ExitOnForwardFailure=yes -N -R 2222:localhost:22 user@vds_ip
- Здесь:
- 2222 — порт на VDS, который будет перенаправлен на локальный порт 22.
- user@vds_ip — пользователь и IP-адрес вашего VDS.
### 4. Настройка службы Windows
1. Создайте службу:
- Скачайте и установите [NSSM](https://nssm.cc/) (Non-Sucking Service Manager).
- Откройте командную строку от имени администратора и выполните:
nssm install SSHTunnel
- В открывшемся окне укажите:
- Path: C:\Windows\System32\cmd.exe
- Startup directory: C:\Windows\System32
- Arguments: /c C:\path\to\your\tunnel.bat
- Нажмите "Install service".
2. Настройте службу:
- Откройте "Службы" (Win + R -> services.msc).
- Найдите службу SSHTunnel и настройте её:
- Установите тип запуска "Автоматически".
- В разделе "Восстановление" настройте перезапуск службы при сбое.
### 5. Запуск и проверка
1. Запустите службу:
- В "Службах" найдите SSHTunnel и запустите её.
2. Проверьте подключение:
- На VDS выполните:
ssh -p 2222 user@localhost
- Если всё настроено правильно, вы подключитесь к терминальному серверу через SSH-туннель.
### 6. Дополнительные настройки (опционально)
- Автоматическое восстановление соединения:
- Добавьте в скрипт tunnel.bat проверку соединения и переподключение:
:loop
ssh -o ServerAliveInterval=60 -o ExitOnForwardFailure=yes -N -R 2222:localhost:22 user@vds_ip
goto loop
- Логирование:
- Добавьте логирование в файл:
:loop
ssh -o ServerAliveInterval=60 -o ExitOnForwardFailure=yes -N -R 2222:localhost:22 user@vds_ip >> C:\path\to\logfile.log 2>&1
goto loop
Теперь у вас настроен постоянный SSH-туннель, который работает как служба и автоматически переподключается при разрыве соединения.