You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于Ubuntu 23.04搭建SFTP服务器的两个疑问

关于Ubuntu 23.04搭建SFTP服务器的两个疑问

嗨,我来帮你梳理这两个关于SFTP配置的问题:

问题1:为什么要新建SFTP用户,能否用现有账户加入sftp组?

首先,新建专门的SFTP用户是安全最佳实践——这样能把文件传输权限和日常系统用户的权限完全隔离开。专门的SFTP用户通常不需要SSH登录系统的权限,也不会拥有系统其他目录的访问权,能有效降低误操作或者被攻击后的风险。

当然你完全可以用现有账户加入sftp组(执行usermod -a -G sftp existingUser),但需要注意几个细节:

  • 如果你的现有账户之前能通过SSH登录系统,这么做之后如果不额外配置,用户依然可以SSH登录。如果你只想让它仅使用SFTP功能,需要修改/etc/ssh/sshd_config,添加对应的Match规则,限制该用户只能使用SFTP,比如设置ForceCommand internal-sftp、X11Forwarding no、AllowTcpForwarding no。
  • 要确保现有账户的主目录或你指定的SFTP目录权限符合SFTP服务器的要求(比如Chroot场景下,目录所有者必须是root,且不能开放写权限给其他用户),否则会导致SFTP连接失败。

问题2:能否将SFTP文件夹设置在桌面路径/home/existingUser/Desktop/sftp?

完全可以,但需要遵守SFTP Chroot功能的硬性权限要求,具体操作步骤如下:

  1. 先创建目标目录:
    sudo mkdir -p /home/existingUser/Desktop/sftp
    
  2. 调整Chroot目录的权限(必须由root拥有,且权限不能是777,建议设为755):
    sudo chown root:root /home/existingUser/Desktop/sftp
    sudo chmod 755 /home/existingUser/Desktop/sftp
    
  3. 在该目录下创建一个用户可读写的子目录(因为Chroot根目录用户无法直接写入):
    sudo mkdir /home/existingUser/Desktop/sftp/uploads
    sudo chown existingUser:existingUser /home/existingUser/Desktop/sftp/uploads
    sudo chmod 755 /home/existingUser/Desktop/sftp/uploads
    
  4. 修改/etc/ssh/sshd_config,添加针对该用户的规则:
    Match User existingUser
        ForceCommand internal-sftp
        ChrootDirectory /home/existingUser/Desktop/sftp
        PermitTunnel no
        AllowAgentForwarding no
        AllowTcpForwarding no
        X11Forwarding no
    
  5. 重启SSH服务使配置生效:
    sudo systemctl restart sshd
    

配置完成后,用户通过SFTP连接后会被限制在/home/existingUser/Desktop/sftp目录下,只能对uploads目录进行读写操作。

备注:内容来源于stack exchange,提问作者Wolf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 09:14:36