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

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

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

答案1

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

通常,您会使用带有远程桌面的终端服务来访问具有完整 GUI(视频、键盘和鼠标)的远程 Windows 服务器并访问本地驱动器以进行文件复制。

远程桌面允许您首先访问您的服务器,在本地测试您的远程脚本/可执行文件(即确保您的路径正确,您的预期输出和输入正常等)。

不管你用远程命令做什么,任何位于远程的生产 Windows 机器都应该安全地可以通过远程桌面访问,因为进行定期维护、安装 Windows 更新等在某些时候将需要这种访问。

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

为了安全地访问您的远程 Windows Server,VPN 连接/隧道必不可少:您绝对不想向 Internet 开放 TCP 端口 135(远程过程调用)和 445(Microsoft-DS 服务)!

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

一旦您建立了与服务器的安全连接(并且我还想使用单独的硬件防火墙中的数据包过滤器或至少使用 Windows 防火墙来限制公共 IP 访问),您现在可以使用类似的psexec(或者如果是本机的,可能是 PowerShell)来执行您想要远程运行的内置命令或脚本/命令行实用程序。

答案2

在 Windows 服务器上安装 SSH 服务器。WinSSHD 是一款价格低廉但性能良好的 Windows SSH 服务器。如果您不想花钱,我推荐 CopSSH,它是 OpenSSH 的 Windows 版本。

安装 SSH 服务器后,您可以通过 SSH 客户端(如 Putty)执行命令行工具。或者,您可以通过 SSH 隧道传输 RDP 以进行远程桌面传输。可以找到使用 CopSSH 和 WinSSHD 隧道传输 RDP 的说明这里这里

答案3

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

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

相关内容