如何在Ubuntu 18.04&16.04上创建不能Shell访问权限的SFTP用户
时间:2019-05-19 01:26:15 来源:igfitidea点击:
本教程将在Ubuntu系统上创建SFTP-only用户(不带ssh访问)。用户只能使用SFTP访问连接服务器,并允许访问指定的目录。用户无法通过SSH连接到服务器。按照下面的教程创建仅限sftp的帐户。
步骤1–创建用户
首先,创建一个用于sftp访问的用户帐户。下面的命令将创建名为 sftpuser的用户,而不具有shell访问权限。
sudo adduser --shell /bin/false sftpuser
步骤2–为SFTP创建目录
现在,创建sftp用户可以访问的目录结构。
sudo mkdir -p /var/sftp/files
将文件目录的所有权更改为sftp user。以便sftpuser可以在这个目录上读写。
sudo chown sftpuser:sftpuser /var/sftp/files
并将/var/sftp的所有者和组所有者设置为root。root用户对此访问具有读/写权限。组成员和其他帐户只有读取和执行权限。
sudo chown root:root /var/sftp sudo chmod 755 /var/sftp
步骤3–配置SSH,仅允许SFTP
现在在文本编辑器中编辑SSH配置文件
sudo vim /etc/ssh/sshd_config
并在文件末尾添加以下设置。
Match User sftpuser ForceCommand internal-sftp PasswordAuthentication yes ChrootDirectory /var/sftp PermitTunnel no AllowAgentForwarding no AllowTcpForwarding no X11Forwarding no
保存配置并重新启动SSH服务使更改生效。
sudo systemctl restart ssh
步骤4–测试SFTP连接
我使用FileZilla从我的Windows系统连接到SFTP实例。Linux桌面用户也可以使用Filezilla进行连接。
对于Linux服务器,用户可以使用sftp命令行实用程序连接到远程sftp实例。
sftp Hyman@theitroad Connecting to sftp.theitroad.com... Hyman@theitroad's password: sftp>
与FileZilla连接:
因为此帐户配置为仅用于SFTP连接。因此,如果任何用户尝试通过SSH连接,则在成功验证后将立即断开连接。用户将收到以下消息:
ssh Hyman@theitroad Hyman@theitroad's password: This service allows sftp connections only. Connection to sftp.theitroad.com closed.