SFTP服务器的搭建与使用
sftp介绍
ftp是大多数网站的文件传输选择工具,但ftp并不是非常安全,而SFTP是基于默认的22端口,是ssh内含的协议,只要启动了sshd就可以使用。
建议:更高的效率使用FTP协议,更安全的通信使用SFTP协议。
FTP是一种文件传输协议,一般是为了方便数据共享的。包括一个FTP服务器和多个FTP客户端。FTP客户端通过FTP协议在服务器上下载资源。而SFTP协议是在FTP的基础上对数据进行加密,使得传输的数据相对来说更安全。但是这种安全是以牺牲效率为代价的,也就是说SFTP的传输效率比FTP要低(不过现实使用当中,没有发现多大差别)。个人肤浅的认为就是:
- FTP要安装,SFTP不要安装。
- SFTP更安全,但更安全带来副作用就是的效率比FTP要低些。
centos7搭建SFTP
- 新建目录
mkdir /sftp
- 创建sftp组
groupadd sftpgroup
- 创建登录使用的用户
useradd shucang -g sftpgroup -s /bin/false -d /sftp/shucang
useradd clumed -g sftpgroup -s /bin/false -d /sftp/clumed
passwd shucang
passwd clumed
- 编辑配置文件sshd配置文件
将如下这行用#符号注释掉
vim /etc/ssh/sshd_config
# Subsystem sftp /usr/libexec/openssh/sftp-server
在文件最后面添加如下几行内容然后保存(最好放在文件末尾)
vim /etc/ssh/sshd_config
Subsystem sftp internal-sftp
Match Group sftpgroup
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory /sftp/%u
ForceCommand internal-sftp
- 设置Chroot目录权限
# 家目录的父目录权限必须为755
chmod 755 /sftp
# 家目录所有者必须为root,用户组根据实际情况填写所属组sftpgroup
# 家目录权限必须为755,否则会导致登录报错
chown root:sftpgroup /sftp/shucang
chmod 755 /sftp/shucang
chown root:sftpgroup /sftp/clumed
chmod 755 /sftp/clumed
- 在各个家目录新建一个目录供sftp用户上传文件
# 权限必须为对应用户:sftpgroup 755的权限
mkdir /sftp/shucang/upload
chown shucang:sftpgroup /sftp/shucang/upload
chmod 755 /sftp/shucang/upload
mkdir /sftp/clumed/upload
chown clumed:sftpgroup /sftp/clumed/upload
chmod 755 /sftp/clumed/upload
- 重启ssh
systemctl restart sshd
systemctl status sshd
部署完成,进行测试是否各个用户只能对对应的家目录拥有读写权限并且只能访问自己的家目录。
想要对服务器的全部目录拥有读写权限使用root账户登录即可。