统信uos配置sftp服务本质是启用openssh内置sftp子系统,需启用sshd服务、创建禁用shell的专用用户、设置合规chroot目录结构、在sshd_config中添加match规则限制访问,并通过文件管理器或sftp命令验证连接与utf-8中文支持。

在统信UOS系统中配置SFTP服务,本质是启用并加固OpenSSH内置的SFTP子系统,无需额外安装FTP守护进程,避免暴露明文协议端口。直接复用已有的SSH服务(默认22端口),既精简架构又提升安全性。
确认并启用OpenSSH服务
统信UOS桌面版默认已预装openssh-server,但可能未启动或未设为开机自启。
执行sudo systemctl status sshd检查状态;若显示inactive,运行sudo systemctl enable --now sshd启用并立即启动服务。
这一步必须完成,否则后续所有SFTP连接都会被拒绝——【sshd服务未运行时,任何SFTP客户端都无法建立基础连接】。
创建专用SFTP用户并限制访问范围
不建议使用root或普通登录用户直接SFTP,应新建隔离账户,防止越权访问系统文件。
第一步:创建用户并禁用shell登录
执行sudo adduser --shell /usr/bin/false --disabled-password sftpuser,其中--shell /usr/bin/false确保该用户无法通过SSH执行命令,仅能使用SFTP。
第二步:设置密码
运行echo "sftpuser:SecurePass123" | sudo chpasswd,密码需满足UOS密码策略(至少8位,含大小写字母+数字)。
第三步:建立chroot目录结构
执行sudo mkdir -p /srv/sftp/sftpuser/files,再依次运行:sudo chown root:root /srv/sftp/sftpusersudo chmod 755 /srv/sftp/sftpusersudo chown sftpuser:sftpuser /srv/sftp/sftpuser/files。
注意:chroot根目录(/srv/sftp/sftpuser)必须由root拥有且不可写,否则sshd会拒绝启动SFTP会话。
修改SSH配置启用SFTP限制模式
编辑/etc/ssh/sshd_config文件,在末尾添加以下四行:
Match User sftpuser
ChrootDirectory /srv/sftp/sftpuser
ForceCommand internal-sftp
X11Forwarding no
保存后执行sudo systemctl restart sshd重载配置。重启失败常见原因是ChrootDirectory权限不合规,此时查看sudo journalctl -u sshd -n 50 --no-pager定位具体报错。
验证SFTP连接与文件传输
方法一:使用UOS自带文件管理器
打开“文件”应用,在地址栏输入sftp://sftpuser@localhost,回车后输入密码即可进入/files目录,拖放文件即开始上传。
方法二:终端命令行测试
执行sftp -P 22 sftpuser@127.0.0.1,登录后输入ls应只看到files目录,cd ..会提示“Couldn’t stat remote file”——说明chroot生效。
方法三:用FileZilla连接
协议选“SFTP-SSH文件传输协议”,主机填本机IP,端口22,登录类型选“正常”,用户名密码同上;【字符集务必设为UTF-8,否则中文文件名会乱码】。











