在Windows上的安装SSHd服务已便Linux系统下远程命令操作

之前写过一篇“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

具体安装步骤网络上搜索下吧,在选择下载的时候请按下面的操作来选择

2)将Archive里面的xz选择以及zip、unzip KingGoo技术博客 关于windows下安装sshd KingGoo技术博客 关于windows下安装sshd

将Net里面的openssh、openssl、openssl-devel都选择安装 KingGoo技术博客 关于windows下安装sshd
然后就等着他慢悠悠的下吧,发现最近163的源很差劲!

KingGoo技术博客 关于windows下安装sshd

3)配置Cygwin启动bat脚本

After you install Cygwin, navigate to the C:\cygwin directory, open the Cygwin.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

如下图:

image

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的服务管理里去停止

image

然后备份下passwd文件在cygwin的安装目录下etc下

如果没有关闭刚刚打开的cygwin.bat的话直接执行

因为用户使用的是windows系统的,所以需要先在windows上添加好用户后在使用如下命令添加该用户(密码即为windows上添加时所设置密码)

/bin/mkpasswd -l –u <USER> >> /etc/passwd
例如:/bin/mkpasswd -l -u kinggoo >> /etc/passwd
mkdir -p /home/kinggoo
chown kinggoo /home/kinggoo

OK,你可以先使用Administrator登陆连接试试(注意大小写哦,在cygwin里可是按linux下的标准来的哦)

使用SCRT ssh客户端连接(不存在那个用户是因为我当时截图时没有创建kinggoo用户)
image

参考资料:http://docs.oracle.com/cd/E24628_01/install.121/e22624/preinstall_req_cygwin_ssh.htm

二、freeSSHD

下载:http://www.freesshd.com/?ctt=download 下载freeSSHd.exe并且安装

KingGoo技术博客 关于windows下安装sshd

双击后会在右下角任务栏,右键设置Settings

KingGoo技术博客 关于windows下安装sshd

因为我没装telnet,所以XX喽

KingGoo技术博客 关于windows下安装sshd

选择Users标签-》Add

KingGoo技术博客 关于windows下安装sshd

Login:登陆用户名
Authorization:①NT authentication(windows用户模式,使用windows帐号密码登陆)、②Password stored as SHA1 hash(自己创建密码)、③Public key(SSH only) (密钥)
Domain:在选择NT的时候才会被选择,域
User can use:都选了吧 不说也都明白吧,不过其实 Tunneling应该用不到用到ssh隧道在开就好了
KingGoo技术博客 关于windows下安装sshd
可以限制访问连接的IP地址
KingGoo技术博客 关于windows下安装sshd

到时可以把密钥弄到你的远程端
而在Command shell这个地方你可以选择python、shell、perl等主程序(应该可以,到时默认模式下就是走对应的主程序控制台,没试过啊)
KingGoo技术博客 关于windows下安装sshd
验证是否成功,使用SCRT客户端连接一下

KingGoo技术博客 关于windows下安装sshd

KingGoo技术博客 关于windows下安装sshd

OK验证没问题,我也试过执行一些简单脚本也没有问题,但对中文支持不是很好,当然也许是我字体没有设置对?反正我是修改了编码没问题(建议用英文版本的windows吧)!!!感谢!!THX

参考资料:

http://my.oschina.net/quanzl/blog/134542

- THE END -
版权声明:
转载原创文章请注明,文章出处:http://kinggoo.com
原文地址:http://kinggoo.com/cf-sshdforwin.htm
发表评论?

7 条评论。

  1. 请问FREESSHD可能用隔离用户吗?
    比如三个用户登陆后会进入各自的文件夹。

    急用,谢谢!

  2. 多谢多谢,刚好看到这个,感谢站长分享.

  3. 不错的网站 😛 😛 😛 😛

发表评论