CentOS配置SFTP帐户与服务

查看SSH版本

确保openssh版本大于4.8p1。

ssh -V

创建用户登入目录

mkdir -p /opt/file/sftpuser

创建SFTP用户组

groupadd sftp

创建SFTP用户

# -g 指定用户所属群组
# -d 指定用户登入目录
# -s 禁止用户登入系统
# -M 不建立登入目录
useradd -g sftp -d /opt/file/sftpuser -s /sbin/nologin -M sftpuser

设置用户密码

passwd sftpuser
echo "userpass" | passwd --stdin sftpuser

修改SSH配置文件

mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
cp /etc/ssh/sshd_config.bak /etc/ssh/sshd_config
vi /etc/ssh/sshd_config
# 限制用户认证时限
LoginGraceTime 2m
# 是否连接前权限检查
StrictModes yes
# 最大认证次数
MaxAuthTries 6
# 最大保持连接
MaxSessions 10
# 最大保持未认证连接
MaxStartups 10:30:100

# Subsystem       sftp    /usr/libexec/openssh/sftp-server
# 外部子系统
Subsystem sftp internal-sftp
# 条件块
Match Group sftp
# 是否进行X11转发
X11Forwarding no
# 是否允许TCP转发
AllowTcpForwarding no
# 指定Chroot认证路径
ChrootDirectory %h
# 强制执行指定命令
ForceCommand internal-sftp

重启SSH服务

systemctl restart sshd

设置目录权限

chown root:sftp /opt/file
chmod 750 /opt/file
chown root:sftp /opt/file/sftpuser
chmod 750 /opt/file/sftpuser

其它

若系统做过加固,可能需对如下文件解保护。

chattr -i /etc/passwd /etc/shadow /etc/group /etc/gshadow
chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow

若登入目录存在子目录,权限将如下设置。

chown sftpuser:sftp /opt/file/sftpuser/upload
chmod 500 /opt/file/sftpuser/upload

注意

ChrootDirectory目录所有者必须为root用户,且只有其具备w权限。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容