Linux远程执行Windows机器任务

    近期测试人员提出需求需要在Linux下调用Windows系统下的cmd的命令完成自动构建和测试并生成测试报告。

环境:

Windows Server2012 R2        ip:172.16.1.12

CentOS 7.2        ip:xxx.xxx.xxx.xxx

 


1、安装Cygwin


软件下载地址:https://cygwin.com/install.html

下载到Windows系统后,双击进行安装

Linux远程执行Windows机器任务_Linux

选择或添加可用的镜像地址(阿里云镜像)

阿里云镜像站官方帮助说明Linux远程执行Windows机器任务_Linux_02

新增地址

Linux远程执行Windows机器任务_Linux_03


2、安装SSH


打开Cygwin Setup-Select Packages程序,搜索open

Linux远程执行Windows机器任务_Linux_04

勾选openssh并选择一个可安装的版本,然后点击下一步——>下一步

Linux远程执行Windows机器任务_Linux_05


3、在Cygwin里配置OpenSSH


使用管理员方式打开Cygwin,在打开的终端输入ssh-host-config

询问是否使用严格模式,输入no

Linux远程执行Windows机器任务_Linux_06

询问是否创建新的本地sshd账户,输入yes

Linux远程执行Windows机器任务_Linux_07

询问是否以服务的方式安装sshd,输入yes

输入守护进程的值来运行Cygwin,直接回车

Linux远程执行Windows机器任务_Linux_08

创建cyg_server用户账号和密码

 

Linux远程执行Windows机器任务_Linux_09


4、SSH的用户配置


在打开的终端输入ssh-user-config

询问是否一个SSH2 RSA身份文件,输入yes

输入密码,如果没有密码则为空,直接回车

询问要使用此标识登录到计算机吗,输入yes

询问是否创建SSH2 ECDSA身份文件,输入no

询问是否创建SSH1 RSA身份文件,输入yes

Linux远程执行Windows机器任务_Linux_10

 


5、配置密钥方式登录


在Windows终端查看当前的用户名

Linux远程执行Windows机器任务_Linux_11

终端执行ssh-copy-id发送本机的公钥到Windows服务器

Linux远程执行Windows机器任务_Linux_12

 


6、启动服务


在打开的终端执行cygrunsrv.exe --start sshd或者在系统服务中找到CYGWIN sshd并启动

Linux远程执行Windows机器任务_Linux_13

最后在防火墙配置添加入站规则端口例外或者关闭防火墙

 


7、测试连接使用


在Linux上执行ssh免密钥登录

Linux远程执行Windows机器任务_Linux_14

一条命令执行想要的命令(中文乱码暂不处理)

Linux远程执行Windows机器任务_Linux_15

至此,Linux免密钥方式通过ssh远程执行Windows cmd命令完成,开始使用吧