Windows Cygwin 配置 SSH

运维技术   cygwin ssh  

一、安装Cygwin (建议使用32位)

  • 指定源
http://mirrors.sohu.com/cygwin/  
http://mirrors.163.com/cygwin/  
  • 安装第三方包管理工具apt-cyg
wget https://raw.githubusercontent.com/transcode-open/apt-cyg/master/apt-cyg  
mv apt-cyg /bin/apt-cyg  
chmod +x /bin/apt-cyg  
apt-cyg mirror http://mirrors.sohu.com/cygwin/  
  • 安装必须软件

apt-cyg install procps wget curl tree

procps     包含uptime/free/top等常用工具  
openssh-*  默认是不安装OpenSSH的,需要手动选择,在Net类别下选上OpenSSH和OpenSSL两项  
openssl  
rsync  
unzip  
wget  
vim  
dos2unix  
cron  

二、设置环境变量

  • 把 C:/cygwin/bin;C:/cygwin/usr/bin 加入到系统环境变量的Path中

三、配置SSH

  • 生成密钥
cd /home/$user/  
ssh-keygen 当询问要filenames 和 pass phrases 的时候都点回车,接受默认的值  
命令结束后输入 cd ~/.ssh 转到.ssh目录,输入 ls –l 应该包含两个文件id_rsa.pub(公钥) 和 id_rsa(私钥)
  • 打开cygwin执行以下指令
/bin/mkpasswd -l > /etc/passwd
/bin/mkgroup -l > /etc/group
/bin/chmod +r /etc/group
/bin/chmod +r /etc/passwd
/bin/chmod +rwx /var
ssh-host-config -y -p 22022 -u Administrator  
mkdir -m 700 /home/Administrator/.ssh  
echo '' > /home/Administrator/.ssh/authorized_keys  
chmod 600 /home/Administrator/.ssh/authorized_keys  
net start sshd  
  • 启动ssh(CMD中运行)
net start sshd  
  • 查看22122端口是否启动成功
netstat -an |more  

四、批量修改密码

  • 使用net user
ssh -i win.key -p 2222 administrator@x.x.x.x 'net user Administrator  passwd'  
  • 如果出现 请键入 NET HELPMSG 2245 以获得更多的帮助 错误
密码不满足密码策略的需要。检查最小密码长度、密码复杂性和密码历史的需求

五、在Cygwin下安装cygrunsrv及cron程序

  • 将cron安装为windows服务。
    cygrunsrv -I cron -p /usr/sbin/cron -a -n
    网上有些文章中命令格式为: cygrunsrv -I cron -p /usr/sbin/cron -a -d,可能是因为cron版本不同。
  • cygrunsrv参数说明:
-I: 安装服务
-R:删除服务
-S:启动服务
-E:停止服务
-Q:查询服务
-L:显示所有服务
安装服务的参数:
-p:指定服务程序路径
-a:指定服务程序命令参数
-e:指定服务程序的环境变量
-d:服务的显示名称
  • 启动cron服务
    cygrunsrv -S cron
    net start cron

六、卸载SSH

  • 停止服务
    net stop sshd
  • 删除服务
sc delete sshd  
cygrunsrv -E sshd  
cygrunsrv -R sshd  
rm -fr /var/*  

七、无法启动的情况

  • 更改过账号密码
  • 更新过主机名
  • 重装SSH失败(删除VAR目录)
  • 也可以重装openssh