在EC2实例(Windows)上执行远程命令的最佳方式是什么?

我试图在远程EC2实例(Windows)上执行命令,但是我无法从本地计算机连接远程服务器。 我已经把所有端口的ICMP打开了。

ICMP在这里不会为你做任何事情。

通常情况下,您可以使用带有远程桌面的terminal服务通过完整的GUI(video,键盘和鼠标)访问远程Windows服务器,并访问本地驱动器进行文件复制。

远程桌面允许你做什么是首先访问你的服务器,在本地testing你的远程脚本/可执行文件(即确保你的path是正确的,你的期望的输出和input工作等) 。

无论您使用远程命令执行什么操作,远程桌面上的任何生产Windows盒子都应该安全地通过远程桌面访问,因为定期维护,安装Windows更新等操作需要某种程度的访问权限。

远程桌面使用TCP端口3389打开,并且还要求启用terminal服务。

要安全地访问远程Windows服务器,需要VPN连接/隧道:绝对不希望在Internet上打开TCP端口135(远程过程调用)和445(Microsoft-DS服务)!

如果在Windows Server(而且该防火墙支持IPSec隧道)之前有硬件防火墙,则使用Windows内置的PPTP / L2TP over IPSec或IPSec隧道build立安全连接。 如果要定期在一台机器上执行远程服务器上的命令,PPTP或L2TP over IPSec客户端VPN连接就足够了; 如果您希望多台计算机定期访问此远程Windows服务器,则站点到站点IPSec隧道可能更有意义。

一旦build立了与服务器的安全连接(并且我还想通过数据包筛选器在单独的硬件防火墙中或至less使用Windows防火墙来限制公共IP访问),现在可以使用类似于psexec (如果是本地的,也许是PowerShell)来执行你的内置命令或者你想远程运行的脚本/命令行工具。

在Windows服务器上安装SSH服务器。 WinSSHD是一个廉价,但良好的Windows SSH服务器。 如果你不想花费比我喜欢的OpenSSH for Windows包装CopSSH。

一旦安装了SSH服务器,您就可以通过一个SSH客户端(如Putty)执行命令行工具。 或者您可以通过SSH远程桌面隧道RDP。 使用CopSSH和WinSSHD隧道rdp的方向可以在这里和这里find。

在端口1234上运行一个简单的网站怎么样? 您可以使aspx代码轻松地执行命令:

https://stackoverflow.com/questions/247668/running-command-line-from-an-aspx-page-and-returning-output-to-page