之前写过一篇“Shell脚本自动telnet到远程Linux主机执行操作”,好笨的办法!当时以前也没有想到可以在windows上安装个sshd的服务,如果现在想的话,我可能首当其冲的想到通过web方式调用windows本地脚本来实现,可这次突然想起来sshd服务???X了,直接安装个sshd之后不就可以直接远程到windows上了吗!
1)想到这记起之前在windows上安装过的cygwin,这东西很不错可以安装很多的服务或者插件什么,几乎跟linux没啥区别了;
2)网络搜刮了一下发现了freesshd,安装简单而且小巧,而已比较恶心的可能就是如果你的windows是中文版本的可能会有乱码!
不管是如下哪一种方式,你都必须要把防火墙关闭了,或者在防火墙里添加策略!
一、先来Cygwin
1)下载:http://cygwin.com/install.html
具体安装步骤网络上搜索下吧,在选择下载的时候请按下面的操作来选择
将Net里面的openssh、openssl、openssl-devel都选择安装
然后就等着他慢悠悠的下吧,发现最近163的源很差劲!
3)配置Cygwin启动bat脚本
After you install Cygwin, navigate to the
C:\cygwin
directory, open theCygwin.bat
file in edit mode using any editor, and add the following line before invoking the bash shell.我译:安装好了之后,进入到安装目录使用文本编辑工具打开,并在调用bash shell前添加 set CYGWIN=binmode ntsec
@echo off
C:
chdir C:\cygwin\bin
set CYGWIN=binmode ntsec
bash –login -i如下图:
3⑴检查检验添加是否正确,保存好运行此Cygwin.bat文件打开后执行 cygrunsrv -h ,如果出现参数信息,则说明无问题。
4)安装SSHD服务
先备份下cygwin/etc/下的passwd、group文件,然后使用管理员权限运行Cygwin.bat,并执行如下命令生成 windows 用户的密码和用户组
mkpasswd -l > /etc/passwd mkgroup -l > /etc/group chmod +r /etc/group chmod +r /etc/passwd chmod +rwx /var
配置安装SSHd
ssh-host-config
运行效果如下:
$ ssh-host-config
*** Query: Overwrite existing /etc/ssh_config file? (yes/no) yes
*** Info: Creating default /etc/ssh_config file
*** Query: Overwrite existing /etc/sshd_config file? (yes/no) yes
*** Info: Creating default /etc/sshd_config file
*** Info: Privilege separation is set to yes by default since OpenSSH 3.3.
*** Info: However, this requires a non-privileged account called ‘sshd’.
*** Info: For more info on privilege separation read /usr/share/doc/openssh/READ
ME.privsep.
*** Query: Should privilege separation be used? (yes/no) no 【我这个地方操作错误了选了yes,但好像没什么影响似的】
*** Info: Updating /etc/sshd_config file*** Query: Do you want to install sshd as a service?
*** Query: (Say "no" if it is already installed as a service) (yes/no) yes
*** Query: Enter the value of CYGWIN for the daemon: [] binmode ntsec*** Info: The sshd service has been installed under the LocalSystem
*** Info: account (also known as SYSTEM). To start the service now, call
*** Info: `net start sshd’ or `cygrunsrv -S sshd’. Otherwise, it
*** Info: will start automatically after the next reboot.*** Info: Host configuration finished. Have fun!
如何启动服务
可使用 net start sshd 或 cygrunsrv -S sshd 来启动sshd服务。停止的话net stop sshd,或者在windows的服务管理里去停止
然后备份下passwd文件在cygwin的安装目录下etc下
如果没有关闭刚刚打开的cygwin.bat的话直接执行
因为用户使用的是windows系统的,所以需要先在windows上添加好用户后在使用如下命令添加该用户(密码即为windows上添加时所设置密码)
/bin/mkpasswd -l –u>> /etc/passwd 例如:/bin/mkpasswd -l -u kinggoo >> /etc/passwd mkdir -p /home/kinggoo chown kinggoo /home/kinggoo
OK,你可以先使用Administrator登陆连接试试(注意大小写哦,在cygwin里可是按linux下的标准来的哦)
使用SCRT ssh客户端连接(不存在那个用户是因为我当时截图时没有创建kinggoo用户)
参考资料:http://docs.oracle.com/cd/E24628_01/install.121/e22624/preinstall_req_cygwin_ssh.htm
二、freeSSHD
下载:http://www.freesshd.com/?ctt=download 下载freeSSHd.exe并且安装
双击后会在右下角任务栏,右键设置Settings
因为我没装telnet,所以XX喽
选择Users标签-》Add
Login:登陆用户名
Authorization:①NT authentication(windows用户模式,使用windows帐号密码登陆)、②Password stored as SHA1 hash(自己创建密码)、③Public key(SSH only) (密钥)
Domain:在选择NT的时候才会被选择,域
User can use:都选了吧 不说也都明白吧,不过其实 Tunneling应该用不到用到ssh隧道在开就好了
可以限制访问连接的IP地址
到时可以把密钥弄到你的远程端
而在Command shell这个地方你可以选择python、shell、perl等主程序(应该可以,到时默认模式下就是走对应的主程序控制台,没试过啊)
验证是否成功,使用SCRT客户端连接一下
OK验证没问题,我也试过执行一些简单脚本也没有问题,但对中文支持不是很好,当然也许是我字体没有设置对?反正我是修改了编码没问题(建议用英文版本的windows吧)!!!感谢!!THX
参考资料:
http://my.oschina.net/quanzl/blog/134542
请问FREESSHD可能用隔离用户吗?
比如三个用户登陆后会进入各自的文件夹。
急用,谢谢!
应该是可以的,这个就跟linux差不多了。
但不清楚你为什么要这么做呢?
多谢多谢,刚好看到这个,感谢站长分享.
不错的网站 😛 😛 😛 😛
谢谢 过奖了
😛 cool kinggoo V5
嘿嘿 谢东南老兄夸奖