创建用户帐户
我们将创建一个SFTP帐户,该帐户只能用于访问文件。
这将确保服务器不容易受到其他威胁的影响。
创建一个名为的SFTP帐户 sftpuser
:
sudo adduser --shell /bin/false sftpuser
出现提示时,键入密码和其他帐户详细信息。
Adding user `sftpuser' . Adding new group `sftpuser' (1001) . Adding new user `sftpuser' (1001) with group `sftpuser' . Creating home directory `/home/sftpuser' . Copying files from `/etc/skel' . New password: Retype new password: passwd: password updated successfully Changing the user information for sftpuser Enter the new value, or press ENTER for the default Full Name []: sFTP User Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] y
上面创建的用户没有shell访问权限。
这意味着用户将无法像普通用户那样登录服务器。
配置SSH.
如果未安装SSH服务器,请运行以下命令安装它。
sudo apt update sudo apt install openssh-server
默认情况下,SSH主要配置文件位于/etc/ssh/sshd_config
打开SSH配置文件。
sudo nano /etc/ssh/sshd_config
在SSH配置文件的末尾,复制并粘贴下面的行并保存。
Match User sftpuser ForceCommand internal-sftp PasswordAuthentication yes ChrootDirectory /var/sftp PermitTunnel no AllowAgentForwarding no AllowTcpForwarding no X11Forwarding no
保存文件并退出。
以下是上面的配置选项的说明:
- Match User:匹配用户SFTPUSER
- forcecommand内部sft p:强制执行sftp,只有没有shell的访问权限。
- PasswordAuthentication是:允许用户的密码身份验证。
- chrootdirectory/var/sftp:限制对/var/sftp中的目录访问权限。
- allowAgentForAdding否:允许不允许使用SSH代理转发。
- allowtcpforwarding否不允许转帐转发。
- X11Forwarding否不允许图形应用程序。
重新启动SSH服务器使更改生效。
sudo systemctl restart ssh
创建一个主目录
为帐户创建一个SFTP主目录:
sudo mkdir -p /var/sftp/downloads
设置只允许用户访问/var/sftp/downloads文件夹
sudo chown sftpuser:sftpuser /var/sftp/downloads sudo chown root:root /var/sftp sudo chmod 755 /var/sftp
日期:2020-07-07 20:55:16 来源:oir作者:oir