sftp



 

sftp是Secure File Transfer Protocol的缩写,安全​​文件传送协议​​​。可以为传输文件提供一种安全的网络的加密方法。sftp 与 ftp 有着几乎一样的语法和功能。SFTP 为 ​​SSH​​​的其中一部分,是一种传输档案至 Blogger 伺服器的安全方式。其实在SSH软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol)的安全文件信息传输子系统,SFTP本身没有单独的​​守护进程​​​,它必须使用sshd守护进程(​​端口​​​号默认是22)来完成相应的连接和答复操作,所以从某种意义上来说,SFTP并不像一个​​服务器​​​程序,而更像是一个客户端程序。SFTP同样是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。但是,由于这种传输方式使用了加密/​​解密技术​​​,所以​​传输效率​​​比普通的​​FTP​​要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP。

操作环境是centos7

 

1.添加用户组

centos7安装sftp服务器_配置文件

 2.添加用户并设置为sftp组

centos7安装sftp服务器_守护进程_02//-g:加入主要组  -s指定用户登入后所使用的shell    -M:不要自动建立用户的登入目录

 

 3.修改sftp用户的密码,密码为yingyan@sftp.com

centos7安装sftp服务器_配置文件_03

4.创建sftp用户的根目录和属主.属组,修改权限(755)

centos7安装sftp服务器_根目录_04

centos7安装sftp服务器_根目录_05

5.在sftp的目录中创建可写入的目录

centos7安装sftp服务器_添加用户_06

6.修改sshd_config的配置文件

centos7安装sftp服务器_守护进程_07

 

把原来的sshd_config配置文件里的subsystem行注释掉

在sshd_config文件最后添加

centos7安装sftp服务器_守护进程_08

 

配置完成后重启配置

centos7安装sftp服务器_添加用户_09

 

7.验证一下

centos7安装sftp服务器_配置文件_10

 

 

 

如果你链接服务器的时候出现下面的提示:

> Write failed: Broken pipe     
> Couldn't read packet: Connection reset by peer


这个问题的原因是ChrootDirectory的权限问题,你设定的目录必须是root用户所有,否则就会出现问题。所以请确保sftp用户根目录的所有人是root, 权限是 750 或者 755。注意以下两点原则:


  • 目录开始一直往上到系统根目录为止的目录拥有者都只能是 root,用户组可以不是 root。
  • 目录开始一直往上到系统根目录为止都不可以具有群组写入权限 
  • 上面2点一定注意,仔细检查。我就是因为这个问题,导致一直有这个问题。仔细检查配置后,解决问题。

 有任何需要沟通交流的联系QQ群:276483863