Openssh服务器的搭建,并使用PSFTP实现文件自动上传,下载的script命令

才来这家公司被分配一个任务协助经理完成SSH Server的搭建,并且要实现客户端直接向服务器端上传文件。OK废话少说首先先来搭建服务器的步骤!

(1)下载

服务器端我们使用openssh,它自带了cygwin环境以及scp/sftp的服务器(sftp是ssh的一个“子服务”,在ssh通道中使用某个命令在需要时激活)。 http://sourceforge.net/project/showfiles.php?group_id=103886&package_id=111688&release_id=252007在该页面中我们下载SSHWindows-Installer, 3.8p1-1 20040709 Build这个程序即可。(如图1)

image

而客户端我们则采用的是winscp软件,他是一款图形化界面的软件,界面操作类似于ftp软件,很好上手。我们到 http://sourceforge.net/project/showfiles.php?group_id=85589这个地址下载WinSCP 3.8.2。

 

image

配置sftp服务端:

sftp服务端的安装与配置还是比较简单的,通过几条命令就可以开启sftp服务。

第一步:将之前下载的sftp服务端解压缩,然后直接运行主程序。点“NEXT”按钮进行下面的操作。

image (如图3)

第二步:在许可协议窗口处填写“同意”并点“下一步”按钮继续。

image

第三步:在接下来的配置窗口中选择要安装的组件,从界面中我们可以看到包括client(客户端)与server(服务器端),实际上我们只需要服务器端,而客户端我们使用之前下载的WinSCP 3.8.2即可。选择相应的服务器端组件后点“下一步”按钮继续。(如图5)

image

第四步:选择程序安装的路径,默认是c:\program files\openssh,建议大家不修改这个缺省地址。(如图6)

image

第五步:默认情况下openssh将添加一个应用程序到开始程序中,名字叫做openssh for windows。

image

第六步:安装的最后openssh会自动建立ssh安全加密key,保证SSH传输过程中的安全可靠。

image

第七步:完成所有安装工作,点“完成”按钮回到桌面。(如图9)

image

第八步:接下来就要启动该服务了,我们通过“开始->运行->输入CMD后回车”进入到命令提示窗口,然后通过cd命令定位到c:\programfiles\openssh\bin目录。(如图10)

image

第九步:依次执行mkgroup -l >> ..\etc\group mkpasswd -l >> ..\etc\passwd命令,这样你目前windows本地帐户中的用户就都可以登录该sftp服务器了,他们自对文件目录的访问权限和NTFS权限一致。此步骤相当于FTP中的建立访问帐号。(如图11)

image

第十步:添加完各个访问帐户后我们可以到c:\program files\openssh\etc目录中来查看group和passwd两个文件的内容,当然这些内容是经过了加密的。(如图12)

image

这两个文件存储的都是帐户相关信息,正如前面所说他们是从unix移植过来的,配置方式仍然使用了conf文件的方式,几乎没有图形界面。而且这些配置文件一般用unix换行符,建议各位IT168读者使用ultraedit等工具而不是notepad来编辑,一是确保能正常显示,二是确保保存时不会破坏它的格式导致服务程序无法读取。(如图13)

 

image

第十一步:最后在刚才进入的c:\program files\openssh\bin目录下执行net start opensshd命令,这将启动opensshd服务,我们就可以开始访问了。(如图14)

 

image

小提示:一般sftp用默认的22端口发布服务就行。如果你有特殊的原因要把这个端口改掉,请编辑C:\ProgramFiles\OpenSSH\etc\sshd_config文件,把这一行改成你要的端口,比如8029,设置完毕后需要重启openssh服务(任何配置改动都需要重启服务)。
至此服务器端的配置完成,下面我们来介绍如何在客户端上访问建立的sftp服务。
小提示:如果以后要继续添加访问帐户的话,首先在windows中加上这个用户,例如我们以名为sftp的帐户为例,设置密码,确保不要选中“下次登录必须改密码”。这个用户的权限和用户组由你来决定。然后进入c:\program files\openssh\bin目录,执行mkpassword -l -u sftp>> ..\etc\passwd命令即可将刚才添加的sftp帐户添加到访问权限中。说白了指令加-u是加单独一个帐户,没有-u参数的话将把当前系统中所有帐户添加到容许访问sftp服务器的帐户列表中。

配置sftp客户端就更加简单了,由于之前我们已经下载了WinSCP 3.8.2,所以直接运行该程序即可出现登录配置界面。(如图15)

image

我们根据实际填写sftp服务器的地址和访问帐户信息,协议方面保持默认的sftp (allow scp fallback)即可,完成设置后点login登录按钮后会出现“使用提示”信息,不用理会继续即可。(如图16)

 

image

登录进入服务器后我们会看到界面显示和我们之前熟悉的ftp登录工具一样,特别是和flashfxp登录FTP服务器类似。右边是我们看到的sftp服务器发布的目录。(如图17)

 

image

当然这个默认发布目录可能不是我们希望看到的,如果想要访问你的C盘,我们可以先把焦点放在服务器那半边窗口,然后按ctrl+o,输入/cygdrive/c并回车,这样就可以把这个目录加到winscp的书签或者作为登录时的默认目录。(如图18)

 

image

五、总结:
当我们要关闭sftp服务时只需要在服务器端对应目录执行net stop opensshd指令即可,这样对应服务将自动关闭。(如图19)另外如果在客户端上无法访问sftp服务器的话,很可能是因为XP系统自带防火墙捣乱,我们关闭防火墙或者手动在windows防火墙配置中允许c:\Program Files\OpenSSH\usr\sbin\sshd.exe程序的执行和对网络的访问即可。

好了!相信大家都可以从网络上找到上面的资料,如果只是做了这么一点点我也不需要继续开展以下的博文了,正如标题所说我要开始的是客户端自动运行上传或者下载的任务,这里我们当然要直接使用SCRIPT command的方式来实现,不然每天都手工去上传不把人累死 经理还以为我们这些IT都白养了,网络上找了好多都没有一篇能实现自动登陆,不是在服务器定位这边卡住就是在用户passwd输入时候停了

(1)首先在下载PSFTP.EXE,试验了很多就这个能实现auto login。下载完成后直接在c盘下建个文件夹SFTP来放置psftp.exe如图

image

(2)下面我们试验一下用psftp.exe实现自动登陆

我开的client用户名:sftp 密码:P@ssw0rd //(0数字零)。

在dos命令行下进入c:\SFTP文件夹输入命令如下psftp [email protected] �Cpw P@ssw0rd

//sftp(username)@127.0.0.1(server ip这里是本机如果是远程服务器输入它的ip地址) -pw(后面跟的是密码)

image

可以看到自动登陆到了服务器并且自动输入了用户名和密码,哈哈有了这样的方法就能实现用.bat文件自动上传下载了!下面我们来验证自动上传下载

我们分别先建2个文件,一个叫upload.txt 和download.txt分别放置在C:\SFTP和C:\Program Files\OpenSSH也就是psftp和openssh的2个安装文件夹!

image

image

下面我们来建一个.bat的文件主要实现将upload.txt上传和 download.txt下载。传输结束后应该是Openssh文件夹中多了一个upload.txt文件,而sftp文件夹中多了一个download.txt文件。

我们直接在SFTP文件夹下编写2个script,1个用来联结SFTP服务器并且同步文件,另一个用来执行上传和下载文件命令。我这里分别较sync.bat和tranf.scr,他们的内容分别如下:

Sync.bat的内容

cd c:\sftp

psftp [email protected] -pw P@ssw0rd -b tranf.scr

pausa

bye

close

tranf.scr的内容

put upload.txt

get download.txt

sync.bat首先进入sftp文件夹才能使用PSFTP命令,然后输入用户名密码并且调用tranf.scr中的内容实现下载和上传的命令!

image

 

用文本文件编写然后分别保存为各自格式,好了下面来我们见证奇迹的时刻吧!双击直接运行sync.bat command对话框一闪后就消失了,然后我们惊奇的发现2个文件夹下分别都多了一个文件。

 

image

image

是不是很兴奋啦!好啦现在基本能实现上传根下载的自动了!也不枉费我花这么多时间来到网络上找资料了,就是目前还有个问题,因为小弟几乎不懂linux的命令所以我不知道如何定位文件的位置,不知道在LINUX命令行中如何写windows文件夹位置的脚本。希望有懂的高手们能教下小弟。在此谢过!!!!

你可能感兴趣的:(服务器,职场,客户端,openssh,休闲)