slm*_*slm 14
如果您没有设置 FTP 服务器,并且您信任将登录的用户,不要过多地浏览您的服务器,我倾向于为他们提供一个 SFTP 帐户进入系统。
CentOS wiki 维护了一个简单的操作方法,标题为:简单的 SFTP 设置,让这一切变得轻松自如。
我说这是无痛的,因为您实际上只需要创建帐户并确保防火墙允许 SSH 流量,确保 SSH 服务正在运行,您就大功告成了。
如果sshd尚未运行:
$ /etc/init.d/sshd start
Run Code Online (Sandbox Code Playgroud)
添加用户:
$ sudo useradd userX
$ sudo passwd userX
... set the password ...
Run Code Online (Sandbox Code Playgroud)
完成帐户后:
$ sudo userdel -r userX
Run Code Online (Sandbox Code Playgroud)
另一方面,如果您想将此用户限制在指定目录中,SSH 附带的 SFTP 服务器 (openssh) 提供的配置也可以轻松启用。这需要更多的工作,但不会太多。本教程中介绍了这些步骤:如何在 Linux 中设置 Chroot SFTP(仅允许 SFTP,而不是 SSH)。
对您的/etc/ssh/sshd_config文件进行这些更改。
Subsystem sftp internal-sftp
## You want to put only certain users (i.e users who belongs to sftpusers group) in the chroot jail environment. Add the following lines at the end of /etc/ssh/sshd_config
Match Group sftpusers
ChrootDirectory /sftp/%u
ForceCommand internal-sftp
Run Code Online (Sandbox Code Playgroud)
现在,您需要创建 chroot 目录树,该用户将被锁定到该目录树中。
$ sudo mkdir -p /sftp/userX/{incoming,outgoing}
$ sudo chown guestuser:sftpusers /sftp/guestuser/{incoming,outgoing}
Run Code Online (Sandbox Code Playgroud)
权限应如下所示:
$ ls -ld /sftp/guestuser/{incoming,outgoing}
drwxr-xr-x 2 guestuser sftpusers 4096 Dec 28 23:49 /sftp/guestuser/incoming
drwxr-xr-x 2 guestuser sftpusers 4096 Dec 28 23:49 /sftp/guestuser/outgoing
Run Code Online (Sandbox Code Playgroud)
顶级目录如下:
$ ls -ld /sftp /sftp/guestuser
drwxr-xr-x 3 root root 4096 Dec 28 23:49 /sftp
drwxr-xr-x 3 root root 4096 Dec 28 23:49 /sftp/guestuser
Run Code Online (Sandbox Code Playgroud)
不要忘记重新启动sshd服务器:
$ sudo service sshd restart
Run Code Online (Sandbox Code Playgroud)
现在创建 userX 帐户:
$ sudo useradd -g sftpusers -d /incoming -s /sbin/nologin userX
$ sudo passwd userX
... set password ...
Run Code Online (Sandbox Code Playgroud)
您可以检查帐户是否已正确创建:
$ grep userX /etc/passwd
userX:x:500:500::/incoming:/sbin/nologin
Run Code Online (Sandbox Code Playgroud)
完成帐户后,按上述相同方式将其删除:
$ sudo userdel -r userX
Run Code Online (Sandbox Code Playgroud)
...并且不要忘记删除我们上面所做的配置文件更改,然后重新启动sshd以再次激活它们。