机房维护的服务器有window和linux,每个月要巡检一个脚本,需要定时上传的一台windows的服务器,windows传windows的已经写好的bat脚本,见前一篇,http://qujunorz.blog.51cto.com/6378776/1363498,使用的挂载网络共享盘的方式,但是很不美观,而且linux上传的话不一定每台都装了ftp,这就考虑到了在windows服务器上安装sftp服务。
经过在网上查询一番,发现有个Freesshd的免费的东东,可以直接搭建ftp和sftp服务器。据说还有winsshd也很神奇,但是没来的及去试。
直接百度一搜,官网上下载,7百多K。
然后就是安装,安装的时候会问你要不要生产private秘钥,无所谓。
问你要不要作为系统服务,这个还不错,可以随操作系统重启而自动启动。
这时候桌面右下角应该会有个freesshd的图标了,双击打开进行配置。
如果只是配置sftp的,只需要在ssh那边把IP地址填好本机,然后端口什么的都默认,再应用一下,就可以点击启动ssh服务了。
但是有可能会报“generic error for access violation”,其实是Freesshd的系统服务把22端口占用了,你可以先把服务停了,再点击启动,再启动系统服务。
然后配置一下sftp的主目录,users增加一下本地用户,据说windsshd是继承本地用户的,没有试过,不清楚。
恩,最后winscp测试一下,可以用了。。
补充:
"到底是谁占用了80端口,该怎么查,怎么终止它?",这里就简单讲解一下,在windows下如何查看80端口占用情况?是被哪个进程占用?如何终止等.
这里主要是用到windows下的DOS工具,点击"开始"--"运行",输入"cmd"后点击确定按钮,进入DOS窗口,接下来分别运行以下命令:
>netstat -aon | findstr "80"
Proto Local Address Foreign Address State PID
==== ============ ============== ========== ======
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 1688
可以看出80端口被进程号为1688的程序占用.
>tasklist | findstr "1688"
图像名 PID 会话名 会话# 内存使用
========================= ====== ================ ======== ============
inetinfo.exe 1688 Console 0 2,800 K
很明显,是inetinfo占用了80端口;inetinfo.exe主要用于支持微软Windows IIS网络服务的除错,这个程序对你系统的正常运行是非常重要的.
当然,并不是只有inetinfo.exe进程会占用80端口,这只是我机器上的情况.如果你并不了解此进程是干什么用的,千万不要盲目地将其kill掉,最好先百度或Google搜索一下;当然如果你很了解它,并确定可以终止,那么继续下面的命令.
>taskkill /pid 1688 /F
成功: 已终止 PID 为 1688 的进程。
如果你很熟悉此进程,并确定可以终止,那么就直接使用上面的命令把PID为1688的进程终止.(这一步同样可以在任务管理器中执行,inetinfo.exe就是任务管理器中的映像名称,选中它,点击"结束进程"即可)
>tasklist | findstr "1688"
再次确认是否成功终止,如果成功终止此次执行命令后应返回空.