tscccn
管理员
管理员
  • 粉丝31
  • 发帖数109
  • 铜币461枚
  • 威望589点
  • 银元200个
  • 社区居民
  • 忠实会员
阅读:2515回复:2

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

楼主#
更多 发布于:2014-06-12 10:52
之前写过一篇“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
将Net里面的openssh、openssl、openssl-devel都选择安装
然后就等着他慢悠悠的下吧,发现最近163的源很差劲!


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

如下图:

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 <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用户)

参考资料: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://kinggoo.com
原文地址:http://kinggoo.com/cf-sshdforwin.htm

最新喜欢:

dongnandongna...
会不会我不知道,反正我在努力!
dongnan
总版主
总版主
  • 粉丝52
  • 发帖数2165
  • 铜币13236枚
  • 威望5838点
  • 银元150个
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 原创写手
沙发#
发布于:2014-06-12 11:23
 kinggoo v5
tscccn
管理员
管理员
  • 粉丝31
  • 发帖数109
  • 铜币461枚
  • 威望589点
  • 银元200个
  • 社区居民
  • 忠实会员
板凳#
发布于:2014-06-16 14:18
dongnan: kinggoo v5回到原帖
会不会我不知道,反正我在努力!
游客

返回顶部