一,适用场景
我们平时习惯了使用FTP来上传下载文件,尤其是很多Linux的环境下,我们一般都会通过第三方的SSH工具连接到Linux的,但是当我们需要传输文件到Linux的服务器当中,很多人习惯用FTP来传输,其实Linux的默认是不提供FTP的,需要你额外安装FTP服务器。而且FTP服务器端会占用一定的VPS服务器资源。其实笔者更建议使用SFTP代替FTP。
主要因为:一,可以不用额外安装任何服务器端程序(我比较中意这个,哈哈~~,很多公司为了安全性的Linux没有外网环境,只有SSH的时候,想传输文件是很悲催的问题)二,会更省系统资源。三,SFTP使用加密传输认证信息和传输数据,相对来说会更安全。四,也不需要单独配置,对新手来说比较简单(开启SSH默认就开启了SFTP)。
二,主要区别
FTP是一种文件传输协议,一般是为了方便数据共享的。包括一个FTP服务器和多个FTP客户端.FTP客户端通过FTP协议在服务器上下载资源。而SFTP协议是在FTP的基础上对数据进行加密,使得传输的数据相对来说更安全。但是这种安全是以牺牲效率为代价的,也就是说SFTP的传输效率比FTP要低(不过现实使用当中,没有发现多大差别)。个人肤浅的认为就是:一; FTP要安装,SFTP不要安装二; SFTP更安全,但更安全带来副作用就是的效率比FTP要低些。
三,开启SFTP
一,SFTP讲解
SFTP是安全文件传输协议的缩写,安全文件传送协议。可以为传输文件提供一种安全的加密方法
.SFTP与FTP有着几乎一样的语法和功能。
SFTP为SSH的一部分,是一种传输档案至Blogger伺服器的安全方式。其实在SSH软件包中,已经包含了一个叫作SFTP(安全文件传输协议的安全文件传输子系统,SFTP本身没
有单独的守护进程,它必须使用SSHD守护进程(端口号默认是22)来完成相应的连接操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。
SFTP同样是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。
但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP。
二,开启SFTP
开启命令:
1 /etc/init.d/sshd start
2 /etc/init.d/sshd stop
这样启动之后,用XShell5工具使用SFTP连接是可以连接上的
如下图配置:
图1配置信息
图2连接成功
PS:但如果使用Java编写的程序连接,发现出现了错误,报的错误是Auth fail,验证出错。
可能的原因:
/ etc / ssh / sshd_config文件夹的一个配置项PasswordAuthentication默认为否,“PasswordAuthentication”设置是否允许口令验证。把它改为yes,重启服务就OK了。
参考文章:https://www.cnblogs.com/xuliangxing/p/7120130.html
https://www.cnblogs.com/xuliangxing/p/7120205.html