Linux远程执行Windows机器任务

时间:2023-03-09 06:39:49
Linux远程执行Windows机器任务

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远程执行Windows机器任务

新增地址

Linux远程执行Windows机器任务

2、安装SSH

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

Linux远程执行Windows机器任务

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

Linux远程执行Windows机器任务

3、在Cygwin里配置OpenSSH

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

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

Linux远程执行Windows机器任务

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

Linux远程执行Windows机器任务

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

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

Linux远程执行Windows机器任务

创建cyg_server用户账号和密码

 

Linux远程执行Windows机器任务

4、SSH的用户配置

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

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

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

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

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

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

Linux远程执行Windows机器任务

 

5、配置密钥方式登录

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

Linux远程执行Windows机器任务

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

Linux远程执行Windows机器任务

 

6、启动服务

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

Linux远程执行Windows机器任务

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

 

7、测试连接使用

在Linux上执行ssh免密钥登录

Linux远程执行Windows机器任务

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

Linux远程执行Windows机器任务

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