我们知道filezilla是一个开源的ftp的解决方案,它提供了客户端和服务器端,支持的fpt, sftp, ftps,这是你可以从wiki中看到的关于filezilla的介绍,但是这里需要澄清一点就是对sftp的协议的支持,只有filezilla客户端 支持,而服务器并没有支持,因此关于的支持情况如下:
filezilla client - ftp, sftp, ftps
filezilla server – ftp, ftps
前端时间从百度和google看了filezilla的介绍,很多地方模糊的介绍filezilla支持的协议,因此误导了想我一样的一批人。因为 在网上有好多人在网上跟我一样再问,filezilla server怎么配置sftp。查来查去,还是没有什么结果,不管是中文还是英文。
还发现有人ftps错误的认为就是sftp,还网上贴出怎么在filezilla server配置sftps,其实说的是怎样配置ftps。
ftps其实就是 ftp over ssl/tls, 而sftp是ssh + ftp(这里这么说也不是很准确,因为ssh加ftp,还可能是ftp
over ssh,而不是sftp,不过我们这里主要为了跟ftps区别,所以你暂时这么认为也无妨)。
下面关于filezilla官方网站对filezilla server的说明:
FileZilla Server is a server that supports FTP and FTP over SSL/TLS which provides secure encrypted connections to the server.
Support for SFTP (SSH File Transfer Protocol) is not implemented in Filezilla Server.
详细请参看:
http://wiki.filezilla-project.org/FileZilla_FTP_Server
filezilla server确实是支持ftps的,下面简单说下怎么配置:
1. 打开 filezilla server interface,这个程序和filezilla server是2回事情,不同程序。这个程序只是用来关于filezilla server,而filezilla server一般作为windows的系统服务来运行的。这样举例吧,filezilla server就是MS sql server, 而filezilla server interface就是MS SQL Server Management Studio。
2. 登陆到filezilla服务器。
3. 菜单 Edit->Setting
在弹出的窗口左边找到 General Settings -> SSL/TLS Settings
4. 在窗口右边你可以看到‘Generate new certificate’这个按钮,点击它。
5. 将会新弹出一个窗口,设置2位数的国家号码比如67,随便填都可以。
还有其他组织名,邮件名等
6. ‘save key and certificate to the file’ 这个地方要填入你准备将生成的文件放在你磁盘的什么位置。
7. 然后点击’Generate Certificate’就可以生成文件了。
然后filezilla会自动将刚生成的private key和certificate填入对应地方,你不用动态。
然后再去添加用户的地方,添加新的用户,勾上
‘Force SSL for user login’
这样用户登录的时候就用需要用ssl来登录了。
在使用filezilla client连接时选择使用
协议类型选ftp
加密类型选 ftp over tls
其实我并没有用这种方式来完成我的工作,因为SSL其实需要公钥和私钥来完成,这种方式只在服务端生成了证书和私钥,问题就是:
1. 没有公钥
2. 客户端不需要任何公钥或者私钥就可以连接。
所以安全无从谈起。
上面这段是我之前错误的理解,后来发现其实证书里面本身就包含了公钥。当客户端首次访问服务端时,服务端就会发送这个证书给客户端,这样客户端就有了这个公钥,就可以拿这个公钥加密一段文字发送给服务端来验证服务端的真实性。
最后我采用
服务器端
freeSSHD 支持sftp
客户端
WinSCP 支持脚本控制,可以限制上传下载速度。