Cygwin + OpenSSH FOR Windows的安装配置

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

一、cygwin安装方法

点击安装如下图

   

默认下一步

在User URL输入点击Add


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

安装vim插件

二、安装sshd服务

点击cygwin桌面快捷方式

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

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

其中cyg_server需要设置密码

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

启动服务 net start sshd

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

三、添加防火墙规则

在防火墙中添加入站规则,允许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