【发布时间】:2015-02-12 12:45:24
【问题描述】:
众所周知,Java 可以通过 jsch 或 sshj 向 Linux 服务器发送 SSH 命令。是否可以通过远程桌面协议(在端口 3389 上)或其他方式对 Windows 服务器执行相同的操作?
【问题讨论】:
标签: java windows ssh remote-desktop windows-shell
众所周知,Java 可以通过 jsch 或 sshj 向 Linux 服务器发送 SSH 命令。是否可以通过远程桌面协议(在端口 3389 上)或其他方式对 Windows 服务器执行相同的操作?
【问题讨论】:
标签: java windows ssh remote-desktop windows-shell
根据您的描述,我想问题不在于 Java 本身,而在于首先选择远程控制。
ssh是一个文本协议,将客户端上的终端连接到服务器上的登录会话/shell,以便shell将使用客户端上的终端作为其默认的stdin/stdout/@987654324 @。除非您使用ssh -X,否则ssh 将另外为X 协议建立一个隧道。这意味着ssh 主要是一种文本远程控制方式。
据我所知,RDP - 远程桌面协议主要是一种图形远程控制方式,与文本远程控制相比,自动化确实很困难。
因此,这在很大程度上取决于您想要文本/命令控制还是图形控制,它们彼此之间非常不同。
我所知道的将 Windows 机器变成可以以可控且合理的方式以文本方式远程控制的东西的最好和最方便的方法,主要是为了自动化目的,是安装 em>Cygwin 与 sshd 并将 sshd 设置为服务。然后,无论您的服务器是在 Linux / UNIX / Mac OS X 还是 Windows 上运行,您都可以使用相同的客户端库。
telnet 和rlogin 也是可能的,但我不推荐它们,因为它们缺乏加密 - 每个可以访问网络的人都可以通过简单的窃听获得登录凭据。
如果你想使用图形远程控制,你可以使用 RDP 或 X11,仅举两个例子。您可以通过设置 Cygwin xdm 在 Windows 机器上作为服务运行以使用 XDMCP - X 显示管理器控制协议,让 X11 在 Windows 上运行。如果您选择 RDP 并希望所有服务器使用相同的协议,也有适用于 Linux 的服务提供 RDP。
【讨论】:
勾选Proper Java RDP或Lixia java RDP以代替JSCH或SSHJ使用
注意:代码支持 Windows Server 2008,尚未在 Windows Server 2012 上测试
【讨论】: