SFTP安全传输 客户端 + 服务器 搭建

转自:http://blog.csdn.net/liujiaqiid/article/details/4519582

===================概念性问题==============================

=======putty
  随着Linux在服务器端应用的普及,Linux系统管理越来越依赖于远程。在各种远程登录工具中,Putty是出色的工具之一。
  Putty是一个免费的、Windows 32平台下的telnet、rlogin和ssh客户端,但是功能丝毫不逊色于商业的telnet类工具。

      ===

      用它来远程管理Linux十分好用,其主要优点如下: 
  ◆ 完全免费;
  ◆ 在Windows 9x/NT/2000下运行的都非常好;
  ◆ 全面支持ssh1和ssh2
  ◆ 绿色软件,无需安装,下载后在桌面建个快捷方式即可使用;
  ◆ 体积很小,仅364KB (0.54 beta版本);
  ◆ 操作简单,所有的操作都在一个控制面板中实现。

=======ssh
       ssh是我最常用的远程连接协议,因为ssh本身连接使用加密的数据隧道,即便有人监听,也无法获得我们所在通讯的内容。ssh协议包括一个服务器端和客户端。一般来说,现在的Linux都带有open ssh :

   可以担当ftp数据传输功能

   可以完美的转发X数据流

   可以套接在其他的协议之上,从而为其他的加密 
使用ssh可以避免使用密码,虽然我们可以记住自己的密码,同时把登录密码设得很长,达到一定的安全性。但是有了ssh我们还可以选择

保管自己的密钥,而不是记住自己的密码,或者记一个短一些的密码。putty里面为这个功能提供的产生密钥的工具是 puttygen.exe,对应命令ssh-keygen,可以生成DSA和RSA密钥,这个自己选择好了。产生密钥之后可以附加一个使用密钥的密码,如果不要,那就自己保管好自己的私钥了。putty产生的密钥有个小毛病,就是没有用户名,而ssh-keygen可以产生相应用户名,这使得putty不得不让我们多输入一行字——自己的用户名。产生的密钥是一对,公钥和私钥。

公钥可以上传到远端服务器上面,如openssh是在~/.ssh/authorized_keys,append到文件最后即可生效,而私钥就是通信的时候自己持有的密钥了。所以私钥一定要自己保管好。

  SSH的英文全称是Secure SHell。通过使用SSH,你可以把所有传输的数据进行加密,这样“中间人”这种攻击方式就不可能实现了,而且也能够防止DNS和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替telnet,又可以为ftp、pop、甚至ppp提供一个安全的“通道”。

  最初SSH是由芬兰的一家公司开发的。但是因为受版权和加密算法的限制,现在很多人都转而使用OpenSSH。OpenSSH是SSH的替代软件,而且是免费的,可以预计将来会有越来越多的人使用它而不是SSH。

  SSH是由客户端和服务端的软件组成的,有两个不兼容的版本分别是:1.x和2.x。用SSH 2.x的客户程序是不能连接到SSH 1.x的服务程序上去的。 

=======cypwin

      cygwin是一个在windows平台上运行的unix模拟环境,是cygnus solutions公司开发的自由软件(该公司开发了很多好东西,著名的还有eCos,不过现已被Redhat收购)。它对于学习unix/linux操作环境,或者从unix到windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用gnu工具集在windows上进行嵌入式系统开发,非常有用。随着嵌入式系统开发在国内日渐流行,越来越多的开发者对cygwin产生了兴趣。
  cygnus当初首先把gcc,gdb,gas等开发工具进行了改进,使他们能够生成并解释win32的目标文件。然后,他们要把这些工具移植到windows平台上去。一种方案是基于win32 api对这些工具的源代码进行大幅修改,这样做显然需要大量工作。因此,他们采取了一种不同的方法——他们写了一个共享库(就是cygwin dll),把win32 api中没有的unix风格的调用(如fork,spawn,signals,select,sockets等)封装在里面,也就是说,他们基于win32 api写了一个unix系统库的模拟层。这样,只要把这些工具的源代码和这个共享库连接到一起,就可以使用unix主机上的交叉编译器来生成可以在windows平台上运行的工具集。以这些移植到windows平台上的开发工具为基础,cygnus又逐步把其他的工具(几乎不需要对源代码进行修改,只需要修改他们的配置脚本)软件移植到windows上来。这样,在windows平台上运行bash和开发工具、用户工具,感觉好像在unix上工作。
         Cygwin包括两部分,一是cygwin1.dll文件,它作为一个Linux API仿真器层为各Linux应用程序提供各种Linux下的系统调用。另一部分包括一系列Linux下的常用工具包,这些工具包是用l这些工具的源码针对Cygwin环境重庆编译而成。需要注

意的是Cygwin并不能让原生Linux程序在windows下直接运行,如果你想让一个Linux应用程序在windows下运行,你将不得不将应用程序从源代码重新编译。
=====openssh

 OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。它用安全、加密的网络连接工具代替了 telnet、ftp、 rlogin、rsh 和 rcp 工具。OpenSSH 支持 SSH 协议的版本 1.3、1.5、和 2。自从 OpenSSH 的版本2.9以来,默认的协议是版本2,该协议默认使用 RSA 钥匙。OpenSSH 2.x同时支持SSH 1.x和2.x。

==========psftp

PSFTP是PuTTY SFTP客户端,用于本地与服务器间安全传输文件(使用SSH连接)。

具体可查询http://blog.csdn.net/liujiaqiid/archive/2009/09/04/4519938.aspx

==========sftp
     一般来说两台机器间的文件传输,除了常用的ftp以外,还可以通过scp/sftp协议(就是本文介绍的sftp)进行。下面我们就来看看sftp协议与ftp协议之间的差别。

    (1)和ftp不同的是sftp/scp传输协议默认是采用加密方式来传输数据的,scp/sftp确保传输的一切数据都是加密的。而ftp一般来说允许明文传输,当然现在也有带SSL的加密ftp,有些服务器软件也可以设置成“只允许加密连接”,但是毕竟不是默认设置需要我们手工调整,而且很多用户都会忽略这个设置。

    (2)普通ftp仅使用端口21作为命令传输。由服务器和客户端协商另外一个随机端口来进行数据传送。在pasv模式下,服务器端需要侦听另一个口。假如服务器在路由器或者防火墙后面,端口映射会比较麻烦,因为无法提前知道数据端口编号,无法映射。(现在的ftp服务器大都支持限制数据端口随机取值范围,一定程度上解决这个问题,但仍然要映射21号以及一个数据端口范围,还有些服务器通过UPnP协议与路由器协商动态映射,但比较少见)

    (3)当你的网络中还有一些unix系统的机器时,在它们上面自带了scp等客户端,不用再安装其它软件来实现传输目的。

    (4)scp/sftp属于开源协议,我们可以免费使用不像FTP那样使用上存在安全或版权问题。所有scp/sftp传输软件(服务器端和客户端)均免费并开源,方便我们开发各种扩展插件和应用组件。


====================环境搭建=======================
1-------------------下载程序
     服务器端我们使用openssh,它自带了cygwin环境以及scp/sftp的服务器(sftp是ssh的一个“子服务”,在ssh通道中使用某个命令在需要时激活)。 http://sourceforge.net/   是一个和好的开源网站, 可搜索openssh for windows最新版本下载.

    客户端可采用winscp软件,他是一款图形化界面的软件,界面操作类似于ftp软件,很好上手。我们到 http://sourceforge.net/ 下即可.  也可采用psftp软件,是命令行格式。
(以上软件也可到此下载:  http://download.csdn.net/source/1664899        http://download.csdn.net/source/1662977
2-------------------安装
    服务器端安装很简单,就像其它windows下的软件一样,双击即可。安装到大半,会有提示框弹出,说“必须要设置../etc/passwd文件才可以正常运作openssh,详情可以参阅readme.txt或quickstart.txt文件。”不用管它,按确定继续完成安装。安装完后可以看到quickstart.txt文件的内容。大体步骤如下:

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

 

 1

 第二步

 

 

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

 

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

 

第五步:

5

 

客户端winscp或psftp可直接运行:

 

       

打开winscp:

 

 

3------------------配置 
     第一、打开一个ms-dos终端,进入openssh/bin目录。(安装完openssh后,发现多了几个在linux中常用的命令,如:ls、mkdir、rm、chmod、chown等)
     第二、将计算机上的组导入group文件中。这里分两种情况,第一种是本地,第二种是在域中。分别运行-l和-d参数。如果想将两种组都导入,可以先运行-l的参数再运行-d参数的命令。 
下面是原文: 
Use mkgroup to create a group permissions file. For local groups, use the "-l" switch. For domain groups, use the "-d" switch. 
     For both domain and local, it is best to run the command twice (remember to use >>, not >). If you use both, make sure to edit the file to remove any duplicate entires. 

       mkgroup -l >> ../etc/group        这是加入本地组的命令。 
       mkgroup -d >> ../etc/group       这是加入域组的命令。 

     第三、将计算机的用户与其密码导入passwd文件中。与上面的组一样,也是分本地和域两种情况。如果没有该文件或没有导入用户的信息。作为server的话,将不能被登陆,因为没有用户嘛! 
下面是原文: 
Use mkpasswd to add authorized users into the passwd file. For local users, use the "-l" switch. For domain users, use the "-d" switch. 
     For both domain and local, it is best to run the command twice (remember to use >>, not >). If you use both, make sure to edit the file to remove any duplicate entires. 

       mkpasswd -l [-u <username>] >> ../etc/passwd       这是加入本地用户的命令。 
       mkpasswd -d [-u <username>] >> ../etc/passwd       这是加入域用户的命令。
 

     NOTE: To add users from a domain that is not the primary domain of the machine, add the domain name after the user name. 
     NOTE: Ommitting the username switch adds ALL users from the machine or domain, including service accounts and the Guest account. 
4--------------启动openssh server 

       net start opensshd 

很明显,停止opensshd服务的命令就是: 
   
     net stop opensshd

=============================

链接到sFTP客户端谷歌浏览器应用程序 访问您的本地/远程FTP服务器(包括您的NAS驱动器),本地服务器,VPS,专用服务器,云服务器或共享主机。 我们现在已经发布了适用于MAC,WINDOWSLINUX的本地应用程序,请访问我们的网站: http://www.sftpclient.io/download ------------------------------------------ sFTP客户端是简单的,它是建立在谷歌浏览器/ Chrome操作系统打包的应用程序界面,使应用程序快速和响应。其中一些功能包括一个FTP / SFTP帐户管理器,用于存储和管理最常用和最喜欢的FTP / SFTP连接,只需点击一下,文件/文件夹队列即可查看当前正在上传/下载的项目,强大的文本编辑器(所以你甚至不需要额外的程序来修改你的代码),等等... 看看下面的sFTP客户端应用程序的所有功能。 特征: ========= - 标准的FTP连接 - SSH over File Transfer Protocol(sFTP)连接 - 用于SSH连接的权限密钥文件(SSH密钥 - RSA) - FTP / SFTP被动模式 - 连接到远程(外部)和本地(内部)FTP / SFTP / SSH服务器。 - 更改文件/文件夹权限(通过复选框或值:例如777) - 上传/下载多个文件和文件夹 - 快速连接 - 编辑器选项:选项卡式文件,自定义 - 拖放文件/文件夹 - 管理FTP / SFTP / SSH账户(使用谷歌浏览器本地存储和安全密码加密存储) - 强大的文本编辑器,语法高亮(保存,自动保存和自动上传功能) - 键盘选择(向上,向下,进入(回车)和退出(退格)的目录,包括搜索能力,通过键盘上键入快速访问文件/文件夹) - 导入帐户:sFTP客户端 - 出口帐户 - 重命名和删除文件 - 创建新的文件/目录 - 刷新本地和远程列表 - 对列进行排序和调整大小 - 多选文件和文件夹 - 按路径浏览本地和远程文件夹 - 本地目录:选择每个连接的默认本地目录,假设为全局 - 快速帐户菜单(一键从您保存的列表中打开FTP / SFTP / SSH帐户连接) - 多个FTP / SFTP / SSH帐户连接(如果您打开了大量连接,则滚动选项卡) - 关闭连接(断开与服务器的连接并删除所有活动) - 控制台日志(显示所有FTP / SFTP / SSH活动日志) - 传输队列(排队的文件和文件夹,失败的文件和文件夹,完成的文件和文件夹) - 新的Google Sockets API - 远程和本地菜单 - 连接并列出UNIX和MS-DOS目录 - 复制网址到剪贴板 - 10最近的连接 - 保持连接 - 主密码登录(保持所有的FTP连接安全,1登录) - 同步浏览 更多的功能和功能来免费未来的更新! 支持语言:English (UK)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值