1. 介绍
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。
2. sftp搭建
2.1 创建SFTP 主目录
mkdir -p /data/sftp
2.2 创建SFTP 用户组
groupadd sftp
2.3 创建FTP用户,并指定home到SFTP主目录下
以下创建了3个SFTP用户
useradd -g sftp -s /sbin/nologin -d /data/sftp/ftp1 ftp1
useradd -g sftp -s /sbin/nologin -d /data/sftp/ftp2 ftp2
useradd -g sftp -s /sbin/nologin -d /data/sftp/ftp3 ftp3
2.4 设置FTP用户密码
echo password1 | passwd --stdin ftp1
echo password2 | passwd --stdin ftp2
echo password3 | passwd --stdin ftp3
2.5 修改 sshd_config 配置文件
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
vi /etc/ssh/sshd_config
#找到并注释
#Subsystem sftp /usr/libexec/openssh/sftp-server #添加
Subsystem sftp internal-ftp
Match Group sftp
ChrootDirectory /data/sftp/%u
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
2.6 修改目录权限
chown root:sftp /data/sftp/*
chmod 755 /data/sftp/*
2.7 创建ftp用户上传下载目录
mkdir /data/sftp/ftp1/upload
mkdir /data/sftp/ftp2/upload
mkdir /data/sftp/ftp3/upload
chown ftp1:sftp /data/sftp/ftp1/upload
chown ftp2:sftp /data/sftp/ftp2/upload
chown ftp3:sftp /data/sftp/ftp3/upload
chmod 755 /data/sftp/ftp1/upload
chmod 755 /data/sftp/ftp2/upload
chmod 755 /data/sftp/ftp3/upload
2.8 重启SSHD 服务
service sshd restart
2.9 登录验证
[root@test1 ~]# sftp ftp2@localhost
Connecting to localhost...
ftp2@localhost's password:
sftp> dir
upload
sftp> cd upload
sftp> lcd /etc
sftp> put passwd
Uploading passwd to /upload/passwd
passwd 100% 1825 1.8KB/s 00:00
sftp> dir
passwd
sftp>
#关闭命令
service iptables stop
chkconfig iptables off sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config;
setenforce 0