本文主要介绍Ubuntu系统中开启sftp功能的方法。
本文创建的用户组和用户以实际环境为准。
sudo apt-get install openssh-server
提示:也可以不进行创建,直接使用root用户。
sudo addgroup sftp-test
sudo adduser alice
sudo usermod -G sftp-test -s /bin/false alice
sudo addgroup ssh-users
sudo usermod -a -G ssh-users admin
注:-a参数的意思是不从其他用户组用移除用户。
sudo nano /etc/ssh/sshd_config
AllowGroups ssh-users sftp-users
Match Group sftp-users
ChrootDirectory /home/sftp_root
AllowTcpForwarding no
X11Forwarding no
ForceCommand internal-sftp
注:
- AllowGroups ssh-users sftp-users:只允许ssh-uers及sftp-users通过SSH访问系统。
- Match Group sftp-users:针对sftp-users用户,额外增加一些设置。
- ChrootDirectory /home/sftp_root:将
/home/sftp_root
设置为该组用户的系统根目录,因此它们将不能访问该目录之外的其他系统文件。- AllowTcpForwarding no和X11Forwarding no:禁止TCP Forwarding和X11 Forwarding。
- ForceCommand internal-sftp:强制该组用户仅仅使用SFTP。
提示:执行重启等风险操作前,需要保证业务的正常进行并做好数据备份。