Я пытаюсь выполнить команду на удаленном экземпляре EC2 (Windows), но не могу подключить удаленный сервер с локального компьютера. Я открыл ICMP для всех портов.
ICMP здесь ничего не сделает.
Обычно вы используете службы терминалов с удаленным рабочим столом для доступа к удаленному серверу Windows с полным графическим интерфейсом (видео, клавиатура и мышь) и доступом к локальным дискам для копирования файлов.
Что позволит вам сделать удаленный рабочий стол, так это сначала получить доступ к вашему серверу, протестировать ваши удаленные скрипты / исполняемые файлы локально (то есть убедиться, что ваши пути верны, ожидаемые выходы и входы работают и т. Д.) .
Независимо от того, что вы делаете с удаленными командами, любой производственный компьютер Windows, расположенный удаленно, должен быть надежно доступ к удаленному рабочему столу, так как регулярное обслуживание, установка обновлений Windows и т. д. потребуют такого доступа в какой-то момент.
Удаленный рабочий стол использует TCP-порт 3389 для открытия, а также требует, чтобы были включены службы терминалов.
Для безопасного доступа к удаленному серверу Windows используется VPN-соединение / туннель: вы абсолютно НЕ хотите открывать TCP-порты 135 (удаленный вызов процедур) и 445 (служба Microsoft-DS) для Интернета!
Установите безопасное соединение с помощью встроенного в Windows PPTP / L2TP через IPSec или туннеля IPSec, если перед Windows Server установлен аппаратный брандмауэр (и этот брандмауэр поддерживает туннели IPSec). Если вы собираетесь периодически выполнять команды на удаленном сервере с одной машины, будет достаточно PPTP или L2TP через клиентское VPN-соединение IPSec; если вы хотите, чтобы несколько машин регулярно получали доступ к этому удаленному серверу Windows, возможно, имеет смысл использовать туннель IPSec между сайтами.
После того, как вы установили безопасное соединение с вашим сервером (и я бы также хотел ограничить общедоступный IP-доступ с помощью фильтра пакетов либо в отдельном аппаратном брандмауэре, либо, по крайней мере, с помощью брандмауэра Windows), теперь вы можете использовать что-то вроде psexec
(или, если родной, возможно, PowerShell) для выполнения вашей встроенной команды или утилиты сценария / командной строки, которую вы хотите запускать удаленно.
Установите SSH-сервер на свой Windows-сервер. WinSSHD - недорогой, но хороший SSH-сервер для Windows. Если вы хотите пойти бесплатно, то мне нравится CopSSH, который представляет собой пакет OpenSSH для Windows.
После установки SSH-сервера вы можете запускать инструменты командной строки через SSH-клиент, например Putty. Или вы можете туннелировать RDP через SSH для удаленного рабочего стола. Инструкции по туннелированию rdp с использованием CopSSH и WinSSHD можно найти Вот и Вот.
А как насчет того, чтобы запустить простой веб-сайт на e. грамм. порт 1234? Вы можете сделать так, чтобы код aspx легко выполнял команду: