CentOS7搭建SFTP

CentOS7搭建SFTP


一、安装OpenSSH服务

shell 复制代码
# 检查是否已安装 SSH
rpm -qa | grep openssh-server
# 查看sshd服务状态
systemctl status sshd

# 若未安装则执行安装
yum install openssh-server -y

# 启动并设置开机自启
systemctl start sshd
systemctl enable sshd

# 查看ssh版本
ssh -V

二、开放端口

SSH/SFTP 默认端口为 22

shell 复制代码
# SSH/SFTP 默认端口为 22,如需修改端口,更改如下端口
vim /etc/ssh/sshd_config
Port 22

# 重启
systemctl restart sshd

# 开放22端口
firewall-cmd --add-port=22/tcp --permanent
firewall-cmd --reload

# 查看防火墙已放行端口
firewall-cmd --list-ports

三、创建 SFTP 用户及目录

shell 复制代码
# 创建用户组
groupadd sftpusers

# 创建用户
# -g 加入用户组
# -s /sbin/nologin :禁止ssh shell登录,仅允许SFTP登录
# -M 不自动创建系统默认家目录
useradd -g sftpusers -s /sbin/nologin -M sftpuser
# 设置用户密码
passwd sftpuser

# 创建SFTP根目录(chroot锁定目录)
# 路径:/sftp/用户名
mkdir -p /sftp/sftpuser
# 根目录必须属主root,权限755,SFTP chroot严格校验
chown root:root /sftp/sftpuser
chmod 755 /sftp/sftpuser

# 创建用户可读写上传目录(用户只对upload目录有权限)
mkdir -p /sftp/sftpuser/upload
chown sftpuser:sftpusers /sftp/sftpuser/upload

四、配置权限限制

shell 复制代码
# 编辑配置文件
vim /etc/ssh/sshd_config
# 注释原有配置
# Subsystem sftp /usr/libexec/openssh/sftp-server
# 使用 SSH 内置的 SFTP 服务
Subsystem sftp internal-sftp
# 匹配 用户组 sftpusers 下的所有用户(推荐使用)
Match Group sftpusers
    # 目录锁定:用户只能访问 /sftp/自身用户名 目录,无法跳出访问服务器其他任何文件
    ChrootDirectory /sftp/%u
    # 强制仅运行SFTP文件传输,禁止所有shell命令执行
    ForceCommand internal-sftp
    # 全量安全加固配置(关闭所有不必要通道,防止端口转发、代理、穿透、提权)
    AllowTcpForwarding no
    AllowAgentForwarding no
    X11Forwarding no
    PermitTunnel no
    PermitTTY no # 禁止分配伪终端,彻底无法登录shell,仅纯文件传输,最安全

# 匹配特定用户(如需匹配多个用户,可使用 Match User user1,user2)(不推荐)
#Match User sftpuser
    #ChrootDirectory /sftp/%u
    #ForceCommand internal-sftp

    #AllowTcpForwarding no
    #AllowAgentForwarding no
    #X11Forwarding no
    #PermitTunnel no
    #PermitTTY no 

# 校验配置文件语法(无任何输出 = 配置完全正确)
# 若有报错,会直接提示错误行号、错误原因,根据提示修改即可
sshd -t

# 重启
systemctl restart sshd

五、测试

shell 复制代码
# 另一台服务器连接
sftp sftpuser@服务器IP

连接成功后验证:
pwd     # 显示 / ,代表已被chroot锁定
ls      # 仅能看到 upload 文件夹
put 本地文件  # 可上传文件至upload目录
相关推荐
chushiyunen6 小时前
autoHotKey、windows自动化快捷键工具
运维·windows·自动化
逆风的蚂蚁6 小时前
linux服务器性能调整怎么落地?我把 CPU 调度、I/O 优先级和内核参数这几个旋钮都拧了一遍
linux·运维·服务器
ESDWAN6 小时前
企业网络监控应该监测哪些目标?网关、网络节点还是业务系统?
服务器·网络·php
mennekes6 小时前
临时用电线路标识:插头颜色、钟面标识配套规范
运维·网络·科技·安全·制造
发光小北7 小时前
EtherNet/IP 转 ModbusTCP 网关现场应用中会遇到什么问题?
服务器·网络·tcp/ip
程序猿老A8 小时前
轻量云服务器总是卡,内存占比高?
运维·服务器
一只鹿鹿鹿9 小时前
智算算力、AI-芯片与产品解析(PPT文件)
大数据·运维·网络·人工智能·物联网·1024程序员节
沫璃染墨9 小时前
从零入门计算机网络系列(十一):HTTP协议进阶——从重定向原理到GET/POST与Fiddler抓包
linux·服务器·开发语言·网络·c++·tcp/ip·html
Kobebryant-Manba10 小时前
C/S和B/S结构
运维·服务器
AI_Lab0111 小时前
宝塔用了两年,有没有必要换成轻量方案?
linux·运维·服务器