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。shell
操做环境是centos7.2 64xvim
1、添加用户组centos
groupadd sftp
2、为sftp用户组添加用户安全
-g:加入用户组 bash
-s:指定用户登入后所使用的shell 服务器
/sbin/nologin:用户不容许登陆网络
-M:不要自动创建用户的登入目录ssh
useradd -g sftp -s /sbin/nologin -M sftp-name
3、修改sftp-name的密码,密码为123加密
passwd sftp-name
4、建立sftp-name用户的根目录和用户:用户组,修改权限755centos7
cd /usr mkdir sftp chown root:stfp sftp chmod 755 sftp
5、在sftp的目录中建立可写入的目录
cd /usr/sftp mkdir project-name chown sftp-name:sftp project-name
6、修改ssh的配置文件
vim /etc/ssh/sshd_config
找到并注释掉这行
Subsystem sftp /usr/libexec/openssh/sftp-server
更改成
#Subsystem sftp /usr/libexec/openssh/sftp-server
并在末尾添加以下几行
Subsystem sftp internal-sftp ##指定使用sftp服务使用系统自带的internal-sftp Match Group sftp ##匹配sftp组的用户,若是要匹配多个组,多个组之间用逗号分割 ChrootDirectory /usr/sftp ##sftp主目录指定到/usr/sftp ForceCommand internal-sftp ##指定sftp命令 AllowTcpForwarding no ##用户不能使用端口转发 X11Forwarding no ##用户不能使用端口转发
配置完成后保存重启ssh
systemctl restart sshd
7、验证
sftp sftp-name@127.0.0.1 sftp-name@127.0.0.1's password: Connected to 127.0.0.1. stfp>