我正在为几个朋友和小客户开办一家小型托管公司,没什么大不了的。
我想给我的“客户端”在服务器上管理他们的文件的权利。我讨厌FTP,因为它不安全,而且在我看来已经过时了。
因此,我希望允许我的用户通过SFTP进行连接,但不允许他们通过SSH进行连接。(我知道,我知道,SFTP正在使用SSH)。但我只是在想,这有可能吗?
这样我就不用在服务器上安装FTP服务了,一切都会很棒!
发布于 2012-01-28 20:46:31
从4.9版OpenSSH开始(在Centos5.x中不可用,但ChrootDirectory特性已被支持)有一个internal-sftp
子系统:
Subsystem sftp internal-sftp
然后阻止其他用途:
Match group sftponly
ChrootDirectory /upload/%u
X11Forwarding no
AllowTcpForwarding no
AllowAgentForwarding no
ForceCommand internal-sftp
将用户添加到sftponly
组。chroot目录必须由root用户拥有,并且不能分组可写,因此为每个用户创建一个子目录,例如由适当用户拥有的uploads
或home/$username
(如果您与他们的主目录匹配,它将是连接时的默认工作目录)。我还将/bin/false
设置为用户的shell。
例如,用户可以通过以下方式上传单个文件:
sftp username@hostname <<< 'put filename.ext uploads/'
(scp有望很快被修改为使用sftp,因此这将变得更容易)
发布于 2012-01-28 21:11:30
有一个shell scponly,这是什么?它也能变色。
发布于 2012-02-02 13:15:10
签出rssh,这是一个允许sftp但拒绝ssh的假shell。
更多关于RSSH的信息
http://www.pizzashack.org/rssh/
RPM
http://pkgs.repoforge.org/rssh/
您可以将rssh配置为允许/拒绝sft、scp等不同行为。
https://serverfault.com/questions/354615
复制相似问题