Задать вопрос
@Randomiser

Как сделать SSH проброс портов как сервис или задание в windows 10?

На ПК лежит закрытый ключ. На терминальном сервере(asd-pc-00) открытый.
Делаю проброс портов с машины bat файлом:
ssh -i "C:\windows\ccmsetup\id_test2" -o StrictHostKeyChecking=no -o UserKnownHostsFile=NUL -N -f -T -R 33890:localhost:3389 test2@asd-pc-00

Проброс работает все хорошо.

Теперь я попытался это упаковать в службу.
Sc.exe create "SSH-Tunnel-Service" binPath= "C:\Windows\System32\OpenSSH\ssh.exe -i `"C:\windows\ccmsetup\id_test2`" -o StrictHostKeyChecking=no -o UserKnownHostsFile=NUL -N -f -T -R 33890:localhost:3389 test2@asd-pc-00"

При запуске службы получаю:
Ошибка 1053: Служба не ответила на запрос своевременно.

Потом через планировщик задач пробовал запускать скрипт который в bat файле и просто как команду. Задание имеет статус выполняется но тунеля нет.

В идеале хочу через сценарий SCCM запускать на машине тунель. Подскажите что я делаю не так.
  • Вопрос задан
  • 271 просмотр
Подписаться 3 Средний 4 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    Специалист по информационной безопасности + нейросети
    12 месяцев
    Далее
  • Merion Academy
    Администрирование MS Windows Server
    1 месяц
    Далее
  • Сетевая Академия ЛАНИТ
    Администрирование System Center Configuration Manager
    1 неделя
    Далее
Пригласить эксперта
Ответы на вопрос 5
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Попробуйте создать службу через NSSM
https://www.interface.ru/home.asp?artId=36135
Ответ написан
Vindicar
@Vindicar
RTFM!
В винде служба должна дёргать специальное API при запуске и в ходе работы, поэтому нельзя просто запустить произвольный процесс как службу.

Как правильно указали выше, нужно обернуть процесс в NSSM - он возьмёт на себя взаимодействие с API, а также запуск/мониторинг/перезапуск вашего процесса.

Запуск через планировщик проще, но у запуска через службу есть то преимущество, что можно настроить другие службы как зависимые от туннеля.
Ответ написан
Комментировать
@rPman
С помощью планировщика задач нужно создать задачу запуска с тригером - при старте системы, указав пользовательские данные авторизации (логин и пароль). Или проверить права доступа к файлам.
Ответ написан
VoidVolker
@VoidVolker Куратор тега Windows
Dark side eye. А у нас печеньки! А у вас?
Используйте AutoSSH через Cygwin64 — он отлично работает и на винде. Для упрощения работы с туннелями можно использовать конфиг SSH — все настройки в одном месте и это упрощает запуск туннеля до одного аргумента.
Ответ написан
Комментировать
OCTAGRAM
@OCTAGRAM
Во-первых, туннель, бывает, рвётся, и для его автоматического восстановления нужен скрипт с бесконечным циклом типа такого

@for /l %%t IN () do @plink -batch "My tunnel"

Во-вторых, туннелю бы и правда желательно рваться, если он сломан. А на практике ssh устанавливает какие-то такие соединения, что может, кажется, сутками ни один пакет не проходить, а потом пройти, и соединение всё ещё открыто как ни в чём не бывало. Вот только с реалиями это плохо бьётся, и подвисание соединения просто остаётся незамеченным. Мне помогло задание удалённой команды ssh на печать точек.

while sleep 0.5; do echo -n .; done

Но вообще по опыту эксплуатации, через несколько суток хотя туннель вроде бы и работающий может быть, но какой-то всё равно плохо работающий по сравнению с тем, чтобы взять его и полностью перезапустить. У меня в конечном итоге появился QOTOM многопортовый x86 роутер с Proxmox VE, и там в LXC я нарулил systemd службу туннеля и перезапускалку для неё в cron повесил.

На Windows только из автозапуска гонял. Под Windows можно посоветовать от Denwer взять штучку, которая умеет программы сворачивать в лоток, в том числе консольные. Глаза не мозолят, но удобно при случае посмотреть, а что у них творится внутри.

На Windows я в планировщик (не в службы) добавлял скрипты, и с той поры осталось воспоминание, что у cmd.exe какие-то дурацкие права назначены, которые не позволяют его запустить из-под планировщика. Если к правам cmd.exe присмотреться и пошаманить, то начинает работать. Но это была эпоха, кажется, Windows XP и 2003.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы