题 允许SFTP但不允许SSH?


我为一些朋友和小客户开了一家很小的托管公司,没什么大不了的。

我想让我的“客户”有权在服务器上管理他们的文件。我讨厌FTP因为它不安全而且在我看来已经过时了。

所以我想允许我的用户通过SFTP连接,但不允许他们通过SSH连接。 (我知道,我知道,SFTP正在使用SSH)。但我只是想知道,这可能吗?

所以我不必在服务器上安装FTP服务,一切都会很棒!


87
2018-01-28 20:40






答案:


从版本4.9开始,OpenSSH(在centos 5.x中不可用,但ChrootDirectory功能被后移)有一个 internal-sftp 子系统:

Subsystem sftp internal-sftp

然后阻止其他用途:

Match group sftponly
     ChrootDirectory /home/%u
     X11Forwarding no
     AllowTcpForwarding no
     ForceCommand internal-sftp

将您的用户添加到 sftponly 组。您必须将用户的homedirectory更改为 / 因为chroot和 /home/user 应归自己所有 root。我也定了 /bin/false 作为用户的shell。


113
2018-01-28 20:46



哇!超级棒!我将对此进行测试并返回此处进行验证。非常感谢! - TomShreds
+1 ChrootDirectory的东西! - Kyle Hodgson
执行此操作后,我的sftponly用户无法通过ssh访问并且能够通过sftp连接。但它根本看不到任何文件!尽管这些文件已获得此用户的许可。 :-( - Emilio Nicolás
如果您想要执行此操作并在sshd_config中找到已存在“/ usr / lib / openssh / sftp-server”的条目,请在此处查看: serverfault.com/questions/660160/...   - internal-sftp是“更新,更好,更容易” - Xosofox


有一个壳 scponly 这是什么它可以 chroot环境 太。


19
2018-01-28 21:11



如果您需要SFTP用户和SSH用户,这将会很好。您只需将/ etc / passwd中的shell替换为仅限于SFTP的shell。 - Dragos


结帐rssh这是一个允许sftp但拒绝ssh的假shell

有关RSSH的更多信息

http://www.pizzashack.org/rssh/

RPM包

http://pkgs.repoforge.org/rssh/

您可以配置rssh以允许/拒绝不同的行为,如sft,scp等。


4
2018-02-02 13:15



尼斯。这是最简单的配置方式,根本不需要触及sshd_config。只需更改passwd文件中的shell即可。 - Tomofumi


您可以修改/ etc / passwd并为该用户提供一个假shell,以便他不能使用ssh。


2
2018-01-28 20:46



你测试过这个吗? - splattne
当我尝试将shell设置为 /bin/false 既不是ssh 要么 sftp工作 - Brad Mace
/ bin / false是禁止任何类型的登录,这不是正确的方法。 Rob Wouters接受的答案是你应该如何限制用户只使用SFTP,而不是通过更改shell。如果你确实想要更改shell @ Stone的asnwer将是一个好主意。 - jwbensley
假设/ bin / bash不可接受和/ bin / false或/ sbin / nologin拒绝访问?应该使用WHAT shell? - Putnik


我使用如上所述将用户shell指定为/ bin / false的方法。但是,您必须确保/ bin / shell位于/ etc / shells中。然后它工作ssh =没有ftp = ok。

我也使用vsftpd并添加它
chroot_local_user = YES 至 /etc/vsftpd/vsftpd.conf 这样ftp-ers就看不到自己的日期了。

这些简单更改的优点是没有烦人的配置为每个用户的ssh配置。


1
2017-09-23 17:09





别忘了找到这条线 UsePAM yes 并评论它:

#UsePAM yes

如果不禁用此功能,SSH服务器将在重新加载/重新启动时崩溃。既然你不需要PAM的花哨功能,这很好。


1
2018-01-25 22:02





配置ssh以仅为某些选定用户启用sftp是一个好主意,只要您安装了它,它就可以正常工作 scponly 要么 rssh

rssh 工作正常,除非你需要配置jail,在这种情况下尝试按照CHROOT手册提供的指令是疯狂的,导致“复制”系统可执行文件和库的大部分在“每个用户监狱”下面,包括 rssh 壳本身。 这是一种浪费空间的方法。

scponly 需要深入了解配置,导致在jail设置的情况下始终存在登录拒绝问题。

允许jail正常工作的“ftp”功能,SSL / TLS支持安全事务和登录的简单方法是使用“老但工作”的VSFTPD,它可以快速,干净地安装,并提供所需的所有可配置性,并且最后但并非最不重要:它有效!

毛里齐奥。


0
2018-04-23 12:47