在 CentOS 7 上部署 SFTP(SSH 文件传输协议)服务,你可以使用 OpenSSH 来实现。
1、安装 OpenSSH:
sudo yum install openssh-server -y
2、配置 SSHD 服务:
打开 /etc/ssh/sshd_config
文件,并进行必要的配置更改。确保以下行处于注释状态(即没有 '#' 符号),或者添加这些行:
# 注释掉以下行(如果存在):
Subsystem sftp /usr/libexec/openssh/sftp-server
# 在文件末尾添加以下行:
Subsystem sftp internal-sftp ##指定使用sftp服务使用系统自带的internal-sftp
Match Group sftpusers ##匹配sftp组的用户,如果要匹配多个组,多个组之间用逗号分割
ChrootDirectory /data/sftp/mysftp/ ##sftp主目录指定
ForceCommand internal-sftp ##指定sftp命令
X11Forwarding no ##用户不能使用端口转发
AllowTcpForwarding no ##用户不能使用端口转发
3、创建 SFTP 用户组:
sudo groupadd sftpusers
4、创建 SFTP 用户:
sudo useradd -g sftpusers -M -s /sbin/nologin sftpusers
sudo passwd sftpusers
5、创建/data/sftp/mysftp/目录并设置主目录权限
mkdir -p /data/sftp/mysftp
chown root:sftpusers /data/sftp/mysftp/ ##文件夹所有者必须为root,用户组可以不是root
chmod 755 /data/sftp/mysftp/ ##权限不能超过755,否则会导致登录报错,可以是755
sftp的主目录只有查看权限,只能实现下载、查看,并不能上传,删除,重命名
6、重启服务
systemctl restart sshd.service