搭建前言:
主机系统:centos7
由于sftp基于ssh协议,所以我们无需安装多余的包,只需要进行相应的配置即可。
搭建过程:
1. 创建用户、用户组,设置目录权限等(本次只是测试,所以只建了一个用户/用户组)
#家目录默认在/home/sftp_user
sudo useradd -m sftp_user:sftp_user
#将家目录的属主改为root
sudo chown root:root /home/sftp_user
#将家目录的权限改为755
sudo chmod 755 /home/sftp_user
#建立上传目录
sudo mkdir -p /home/sftp_user/upload
#建立下载目录
sudo mkdir -p /home/sftp_user/download
#切换上传、下载两个目录的属主为sftp_user
sudo chown -R sftp_user:sftp_user /home/sftp_user/upload
sudo chown -R sftp_user:sftp_user /home/sftp_user/download
2. 备份并修改/etc/ssh/sshd_config,在其中添加以下内容
文字版如下,可直接参考其中未注释内容:
# override default of no subsystems
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
Match User sftp_user
ForceCommand internal-sftp
ChrootDirectory /home/sftp_user
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
PasswordAuthentication yes
# Example of overriding settings on a per-user basis
#Match User anoncvs
# X11Forwarding no
# AllowTcpForwarding no
# PermitTTY no
# ForceCommand cvs server
#UseDNS no
#AddressFamily inet
PermitRootLogin yes
#SyslogFacility AUTHPRIV
#PasswordAuthentication no
3. 重启服务,如果报错就继续查错,如果无错就检查上传下载功能
sysetmctl restart sshd
至此,sftp的搭建就完成了。
搭建后记:
当然,这其中有几个点需要格外注意:
1. 在重启sshd的时候,sshd很容器起不来,会导致客户端连不上去。所以,我们需要注意2点:
1.1 备份/etc/ssh/sshd_config文件,如果ssh真的挂了,就赶紧恢复到以前的状态。
1.2 多开几个console,总要保证有一个console连得到主机,可以保证机器有能力恢复到从前状态。
2. 搭建sftp服务器的时候,我们需要注意3点:
2.1 ChrootDirectory 设置的目录权限及其所有的上级文件夹权限,属主和属组必须是 root。
2.2 ChrootDirectory 设置的目录权限及其所有的上级文件夹权限,只有属主能拥有写权限,权限最大设置只能是 755。
2.3 ChrootDirectory 下面的目录的属主需要设置成sftp user,这样这个用户才可以拥有读/写/执行权限。
About me: 资深大猪蹄子