开启 SFTP
      更新时间:2025-10-30 09:37:31
    
    
    
    
    
    
    
    
      
        
        PDF
      
      
    
  SFTP 工具可以用来打开一次安全互动的 FTP 会话。它与 FTP 相似,只不过,它使用安全、加密的连接。它的一般语法是:sftp username@hostname.com。一旦通过验证,你可以使用一组和使用 FTP 相似的命令。
Ubuntu 云服务器开启 SFTP
- 
确认是否已经安装 openssh-server。 dpkg --get-selections |grep ssh  如果没有安装,请手动执行下面的指令进行安装。 sudo apt-get install openssh-server
- 
新建用户组 sftp-users,并新建用户 sftp。 sudo addgroup sftp-users sudo adduser sftp  
- 
给 sftp 赋权并新建用户组 ssh-users。 - 
将 sftp 从所有其他用户组中移除并加入到 sftp-users 组,并且关闭其 Shell 访问: sudo usermod -G sftp-users -s /bin/false sftp
- 
创建 SSH 用户组,并把管理员加入到该组(注意 usermod 中的 -a参数的意思是不从其他用户组用移除)。sudo addgroup ssh-users sudo usermod -a -G ssh-users root    
 
- 
- 
创建并设置 sftp 用户目录。 sudo mkdir /home/sftp_root sudo mkdir /home/sftp_root/shared sudo chown root:sftp-users /home/sftp_root/shared sudo chmod 770 /home/sftp_root/shared  
- 
修改 SSH 配置文件。 sudo vi /etc/ssh/sshd_config在 sshd_config 文件的最后,添加以下内容: AllowGroups ssh-users sftp-users Match Group sftp-users ChrootDirectory /home/sftp_root AllowTcpForwarding no X11Forwarding no ForceCommand internal-sftp  
- 
重启系统使配置生效。 sudo reboot now  
- 
验证。 sftp sftp@192.168.8.2  
CentOS 云服务器开启 SFTP。
- 
创建用户组 sftp。 groupadd sftp
- 
创建用户 ftp 文件目录。 mkdir /home/sftp
- 
创建用户 sftpuser。 useradd -g sftp -s /sbin/nologin -d /home/sftp/sftpuser sftpuser
| 说明 | 
|---|
| -g 加入到 sftp 组;-s 禁止登录;-d 指定用户的登入目录。 | 
- 
设置密码。 passwd sftpuser
- 
修改文件夹属组。 chown -R sftpuser:sftp /home/sftp/sftpuser  
- 
修改 SSH 的配置文件。 vi /etc/ssh/sshd_config注释 Subsystem 原配置 #Subsystem sftp /usr/libexec/openssh/sftp-server 添加下面几列: 启用 internal-sftp 限制用户 SFTP 访问的根目录 限制 ftpuser1 用户的根目录 Subsystem sftp internal-sftp Match User ftpuser ChrootDirectory /home/sftp ForceCommand internal-sftp  
- 
重启 sshd 服务。 systemctl restart sshd
- 
验证。 sftp sftpuser@192.168.8.2
| 说明 | 
|---|
| 没有重启 sshd 时去连接 sftpuser,会提示 Received message too long 1416128883。 | 
+ image::/images/cloud_service/compute/vm/bestp_linux_sftp_11.webp[]