Cygwin + OpenSSH FOR Windows的安装配置

Cygwin是一款世界著名软件,它可将Linux下的自由软件移植到Windows系统上来应用,了解和掌握这个软件,将使您又多了许多有益的选择,并带您到一个更广阔的天空下翱翔,这对于您的学习和工作将起到确定无疑的推动作用。下面我用自己总结的一个例子,带大家进入这个世界。

一、cygwin安装方法

点击安装如下图

wKiom1gcM4zCxN_NAAHOz8uEp2Y789.png

   wKioL1gcM6TCsKhzAADh3oTLn5Q927.png

wKiom1gcM6SgOqOrAAA6WFUl1aw139.png


默认下一步

wKiom1gcM8HBHQ2hAAAtxzwgq_0857.png

wKioL1gcM8LR7eDpAAAtylZl9aE237.png

wKioL1gcM8LTFjTNAAAnIn3ReRA780.png


在User URL输入http://mirrors.163.com/cygwin点击Add

wKiom1gcM9vCIYd_AAA-rPIPJZs608.png

wKioL1gcM9uzz2oSAAApCTMVgek494.png



查询ssh,选择Net default中标记的勾上(此操作会安装ssh和ssl)

wKiom1gcM-7gghY5AACkVWsMgcY224.png

安装vim插件

wKioL1gcNAfwAnymAAB5I2nolqA808.png

wKiom1gcNAiyaWdEAAAsL0WghD4928.png

二、安装sshd服务

点击cygwin桌面快捷方式

在出现的session后输出 ssh-host-config –y

wKiom1gcNCeDUc03AAGEHzdu5UM331.png

此命令是安装sshd服务,中间需生成两个账户sshd和cyg_server

其中cyg_server需要设置密码

wKioL1gcNDqzUHfkAAGoZ0O0S_Q157.png

wKioL1gcNDvxZ7PLAAAsmk8VwzQ897.png

看下最下面那行,说明安装服务成功!

启动服务 net start sshd

wKioL1gcNE2it35wAAAM-eIqyfk780.png

应为编码问题出现乱码。不影响操作。也可以在服务列表中查看服务是否正常启动。

三、添加防火墙规则

在防火墙中添加入站规则,允许22端口入站。

备注:1、cygwin能实现ssh互信

    2、可以脚本实现对站点批量操作。

    脚本如下(此脚本只作为抛砖引玉的作用,作为一种思路)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/bash/sh
#时间:2016-07-12
cd  /cygdrive/c/Windows/System32/inetsrv 
echo  "*******************************************"
echo  "*                                         *"
echo  "*        IIS管理程序脚本                  *"
echo  "*                                         *"  
echo  "*******************************************" 
echo  "*       1)回收程序应用池                  *"         
echo  "*       2)重启站点服务                    *"          
echo  "*       3)重启服务器服务                  *" 
echo  "*******************************************" 
HostIP=192.168.1
read  -p  "请选择您要做的操作:"  arg
         case  $arg  in
         1)
             read  -p  "请输入你要操作的web服务器(如192.168.1.87只需输入87。每个ip以空格隔开):"  WebIP
             if  [[ $WebIP =~ ^[0-9][0-9 " " ]+$ ]]; then
                for  ip  in  $WebIP
                do
                echo  "web主机IP: $HostIP.$ip"
                ssh  root@$HostIP.$ip  "cd /cygdrive/c/Windows/System32/inetsrv ; ./appcmd.exe list app"
                done
                read  -p  "请输入回收程序应用池名:"  zendao;
                for  ip  in  $WebIP
                do
                echo  "web主机IP: $HostIP.$ip"
                ssh  root@$HostIP.$ip  "cd /cygdrive/c/Windows/System32/inetsrv ; ./appcmd.exe recycle apppool \"$zendao\""
                done
                else  echo  "你输入的ip有误,请重新输出.格式:每个ip以空格隔开,不能存在字符或其他字符"
             fi
             ;;
         2) 
             read  -p  "请输入你要操作的web服务器(如192.168.1.87只需输入87。每个ip以空格隔开):"  WebIP
             if  [[ $WebIP =~ ^[0-9][0-9 " " ]+$ ]]; then
                for  ip  in  $WebIP
                do
                echo  "web主机IP: $HostIP.$ip"
                ssh  root@$HostIP.$ip  "cd /cygdrive/c/Windows/System32/inetsrv ; ./appcmd.exe list site"
                done
                read  -p  "请输入需要重启的站点名称:"  zendao;
                for  ip  in  $WebIP
                do
                echo  "web主机IP: $HostIP.$ip"
                ssh  root@$HostIP.$ip  "cd /cygdrive/c/Windows/System32/inetsrv ; ./appcmd.exe stop site /site.name:\"$zendao\""
                ssh  root@$HostIP.$ip  "cd /cygdrive/c/Windows/System32/inetsrv ; ./appcmd.exe start site /site.name:\"$zendao\""
                done
                else  echo  "你输入的ip有误,请重新输出.格式:每个ip以空格隔开,不能存在字符或其他字符"
             fi
             ;;
                3)
                 echo  "Zabbix客户端服务:Zabbix Agent"
             read  -p  "请输入你要操作的web服务器(如192.168.1.87只需输入87。每个ip以空格隔开):"  WebIP
             read  -p  "请输入需要重启的服务名称:"  zendao;
             if  [[ $WebIP =~ ^[0-9][0-9 " " ]+$ ]]; then
                for  ip  in  $WebIP
                do
                echo  "web主机IP: $HostIP.$ip"
                ssh  root@$HostIP.$ip  "NET STOP \"$zendao\" ; NET START \"$zendao\""
                done
              fi
              ;;
         ?) 
             echo  -e  "您输入的选项有误,请重新输入正确的选项!"
             exit  0;;
                      esac