如何仅为 sftp 创建用户?

如何仅为 sftp 创建用户?

我已通过该工具将用户添加到系统中adduser。然后,在 中/etc/passwd,我尝试将 更改/bin/bash/sbin/nologin或 更改为/dev/null,但这些都不起作用。

我希望用户不要选择获取交互式 shell,而只需使用sftp。有办法吗?

我知道以前有人在这里问过这个问题,但似乎没有人给出满意的答复。

答案1

你应该使用以下命令来更改 shell: 奇什。nologin shell 可以是/sbin/nologin或者/usr/sbin/nologin(通过查看来检查您拥有哪个/etc/shells),但/bin/false可能是一个更好的选择。

chsh -s /bin/false user

你应该考虑设置类似scponly它将完全按照您的意愿运行。

答案2

您还应该能够使用 OpenSSH 4.9 及更高版本来执行此操作,通过该版本您可以额外 chroot 用户以提高安全性。

在你的/etc/ssh/sshd_config

Match User user
ChrootDirectory /home/user
ForceCommand internal-sftp
AllowTcpForwarding no

然后运行:

chsh -s /bin/false user
chown root:root /home/user
mkdir /home/user/uploads
chown user /home/user/uploads

用户只能在 /home/user/uploads 中写入。

https://debian-administration.org/article/590/OpenSSH_SFTP_chroot_with_ChrootDirectory

答案3

我认为最好的方法是使用 mysecureshell

http://mysecureshell.sourceforge.net/en/index.html

您可以轻松地使用它来 chroot 用户,甚至在需要时限制带宽。

答案4

您可以使用添加用户来-s /bin/false禁用他们的 shell,但您真正应该考虑设置的是 chrooted sftp 帐户。这会将用户“囚禁”在他们自己的目录中,并阻止他们访问或修改 chroot 目录之外的任何文件或目录。

相关内容