远程执行的基础就是需要执行命令的2台机器可以进行通信,而通常通信的基础就是socket。基于此的协议有很多,但是可以支持命令执行的就不多了,如:telnet、ssh。所以想实现远程命令执行就要在这2个协议上执行。更多telnet、shh。

虽然telnet是操作系统标准服务,但由于telnet通信不安全,所以通常telnet服务是关闭的,即通常不能通过telnet执行远程命令;而ssh则是第三方的协议标准,支持通信加密和验证功能,通信是安全。因此通常服务器上都会安装一个ssh服务,以支持远程访问和控制。

如果一台机器上运行了ssh服务,那么就可以远程访问这台机器了,通常是通过shh客户端来实现的。linux、windows下都有若干个ssh客户端。linux下的open ssh工具;windows下的open ssh for windows(命令行)、putty(命令行+界面)、SSH(界面)、SecureCRT(界面)、winscp(命令行+界面)等等。

此外要在代码里实现2台机器通信可以封装shh的标准通信模块来进行基于ssh的通信;当然也可以自己写一个服务来接受通信和命令并执行之。

PS:
Cygwin:windows下的linux终端模拟
PSCP:基于ssh的命令行文件传输工具
RSH:远程Sheel执行服务
VRH:貌似原来SecureCRT所带的命令行接口