У меня следующая топология:
Мне нужно получить безопасный доступ к порту сервера Windows с моего сервера Linux.
В настоящее время у меня есть plink.exe
завернутый в службу Windows с nssm
инструмент, настроенный как обратная прокси-пересылка, и в целом он работает - но в plink.exe
похоже, нет настроек keep-alive, и это очень ненадежно, соединение разрывается каждый день, и мне приходится перезапускать службу. Также нет возможности настроить сервис в nssm.exe
иметь любую логику «проверки работоспособности» и перезапуска.
Я думаю о написании очень простого инструмента на golang, который будет наблюдать за подключением и перезапускать его, если оно потеряно, но это выглядит немного взломанным и, возможно, слишком сложным, может быть, я что-то упускаю, и мне интересно, есть ли более простые и другие надежный способ решить такую задачу?
Также думал об установке msys2
на ПК с Windows и попробуйте использовать клиент openssh вместо plink, но я не уверен, что мне наконец удастся обернуть его как службу.
Используйте Plink для не интерактивный Сеанс SSH (он же «команды») для выполнения на удаленных машинах Linux в целях автоматизации. Plink никоим образом не предназначен для постоянного использования.
Если я правильно понимаю, ваш компьютер с Windows выполняет NAT и доступен из вашего источника подключения. И вы не можете включить переадресацию портов, например:
netsh interface portproxy add v4tov4 listenport=22 listenaddress=<WAN IP> connectport=22 connectaddress=<DESTINATION IP>
Если это так, я бы рекомендовал настроить SSH-сервер на компьютере с Windows и использовать SSH туннель характерная черта.