如何在CentOS中创建SFTP用户?


8

我想给支持人员一个临时的SFTP访问权限。如何创建SFTP用户?作业完成后如何将其删除?

另外,如何为他们指定主目录?我可以阻止他们访问其主目录中的某些子目录吗?

我们使用CentOS 6.3和fzSftp


这取决于您的配置,我们的配置文件可以为您提供帮助。
2014年

我应该发布哪些特定设置?
OC2PS 2014年

你们其中一个ftp
守护

您确定要FTP还是SFTP?我问的原因是您列出了fzsftp(filezilla sftp),这是Filezilla用于SFTP连接的客户端。
slm

啊! 我通过FileZilla连接到SFTP,因此列出了fzsftp ...以为这是我的服务器。如果您可以帮助我,SFTP会很好。谢谢!
OC2PS 2014年

Answers:


14

非chroot访问

如果您没有设置FTP服务器,并且您信任将要登录的用户,而又不想过多地浏览服务器,那么我倾向于为他们提供一个帐户,以SFTP身份进入系统。

CentOS Wiki维护一个简单的howto,标题为:简单的SFTP设置,使您免于痛苦。

我说这很轻松,因为您实际上只需要注册一个帐户并确保防火墙允许SSH流量,确保SSH服务正在运行就可以了。

如果sshd尚未运行:

$ /etc/init.d/sshd start

要添加用户:

$ sudo useradd userX
$ sudo passwd userX
... set the password ...

帐户处理完毕后:

$ sudo userdel -r userX

chroot访问

另一方面,如果您想将此用户限制为指定的目录,则SSH(openssh)随附的SFTP服务器提供了一种配置,该配置也使此功能易于启用。这需要更多的工作,但还不太多。本教程标题为:如何在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

现在,您需要制作将用户锁定在其中的chroot目录树。

$ sudo mkdir -p /sftp/userX/{incoming,outgoing}
$ sudo chown guestuser:sftpusers /sftp/guestuser/{incoming,outgoing}

权限应如下所示:

$ 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

顶级目录如下:

$ 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

不要忘记重启sshd服务器:

$ sudo service sshd restart

现在创建userX帐户:

$ sudo useradd -g sftpusers -d /incoming -s /sbin/nologin userX
$ sudo passwd userX
... set password ...

您可以检查帐户是否正确创建:

$ grep userX /etc/passwd
userX:x:500:500::/incoming:/sbin/nologin

使用完帐户后,请按照上述相同方法将其删除:

$ sudo userdel -r userX

...并且不要忘记删除我们上面所做的配置文件更改,然后重新启动sshd以使其再次处于活动状态。


真好!如何将用户限制在特定目录中,并防止用户访问该目录中的几个子目录?
OC2PS 2014年

将用户绑定到其主文件夹中,并在其中添加符号链接到您要允许的不同目录中
Kiwy 2014年

@ OC2PS-上面显示了一种将用户chroot的方法,您也可以将他们chroot到其主目录。我通常将这些用户划分到指定的区域,以便在查看/home/...谁是系统上的真正用户时很明显。尽管我运行的是实际的SFTP服务器,所以我的需求略有不同。
slm

当我执行sudo useradd -D userX时,得到用法:useradd [options]登录
OC2PS 2014年

@ OC2PS试试useradd userX。抱歉,我误读了的手册页useradd
slm
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.