目前越来越多的FTP客户端软件开始支持SSH协议上传和下载文件,这种协议方式就是SFTP。
SFTP的优势主要有两点,一是不需要再配置个FTP服务端;二是SSH协议是安全传输,上传和下载是经过加密的。
下面介绍下在最常用的服务器系统 CentOS Linux 7 上配置 SFTP 的方式!
一、sftp 安装
第一步:创建sftp服务用户组,创建sftp服务根目录:
1
2
3
4
|
groupadd sftp #此目录及上级目录的所有者(owner)必须为root,权限不高于755,此目录的组最好设定为sftp chown -R root / var /sftp
chmod -R 755 / var /sftp
|
第二步:创建sftp服务用户:
#添加用户 使用参数 -s /sbin/nologin禁止用户通过命令行登录 useradd -g sftp -d /home/sftp/silent -s /sbin/nologin silent
第三步:为sftp服务用户添加密码
passwd silent
第四步:配置sshd_config:
vim /etc/ssh/sshd_config 注释掉下面这一行: Subsystem sftp /usr/libexec/openssh/sftp-server
在sshd_config最后加入下面这几行:
Subsystem sftp internal-sftp Match Group sftp ChrootDirectory /home/sftp/%u X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp
注:这里要注意一下,上面这些代码务必放在最后,因为必须要“UseDNS no”后面
第五步:重启sshd:
systemctl restart sshd
现在可以正常连接了,但是可能还有个问题,就是无法上传,于是我们需要设置下写入权限:
chown root -R /var/sftp/silent chmod -R 755 /var/sftp/silent
二、sftp 简单操作
测试
sftp silent@127.0.0.1
silent@127.0.0.1's password:
FTP是文件传输协议。在网站上,如果你想把文件和人共享,最便捷的方式莫过于把文件上传到FTP服务器上,其他人通过FTP客户端程序来下载所需要的文件。
FTP进行文件传输需要通过端口进行。一般所需端口为:
1.控制链路—TCP端口21。控制器端。用于发送指令给服务器以及等待服务器响应。
2.数据链路---TCP端口20。数据传输端口。用来建立数据传输通道的。主要用来从客户向服务器发送一个文件、从服务器向客户发送一个文件、从服务器向客户发送文件或目录列表。
FTP为了适应不同的网络环境,支持主动连接和被动连接两种模式。这两种模式都主要针对数据链路进行的,跟控制链路无关。
FTP的安全隐患:
一、FTP服务器软件漏洞。
二、明文口令。
三、FTP旗标。
四、通过FTP服务器进行端口扫描。
五、数据劫持。
FTP的安全策略:
一、使用较比安全的系统和FTP服务软件。
二、使用密文传输用户名和口令。
三、更改服务软件的旗标。
四、加强协议安全性。
SFTP是Secure File Transfer Protocol的缩写,是安全文件传送协议。可以为传输文件提供一种安全的加密方法。跟ftp几乎语法功能一样。
SFTP是SSH的一部分,是一种传输档案至Blogger伺服器的安全方式。它本身没有单独的守护进程,必须使用sshd守护进程来完成相应的连接操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。SFTP同样是使用加密传输认证信息和传输的数据,所以使用SFTP是十分安全的。但由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多。在对网络安全性要求更高时,代替FTP使用。