目前越来越多的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: 

 

FTPSFTP区别
CentOS 7 配置SFTP_数据链路淡定的三文鱼关注赞赏支持
 
FTPSFTP区别
2016.09.30 09:46:28字数 607阅读 946

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使用。