Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell FileZilla打破了rbash和scponly chrooting_Shell_Ssh_Scp_Filezilla_Chroot - Fatal编程技术网

Shell FileZilla打破了rbash和scponly chrooting

Shell FileZilla打破了rbash和scponly chrooting,shell,ssh,scp,filezilla,chroot,Shell,Ssh,Scp,Filezilla,Chroot,我已经在服务器上安装了一个Ubuntu,我试图只允许某些用户将scp文件保存到他们自己的主目录中。我阅读了有关执行此工作的rbash和scponly,对/etc/passwd进行了必要的更改,并验证了它们在通过ssh或scp直接连接到终端时是否正常工作 然而,当FileZilla作为这些用户中的任何一个登录时,它就能够随心所欲地在ls'ing和cd'ing上跳来跳去,我不知道为什么 我已经确保服务器上没有运行FTP守护进程(因此,据我所知,强制FileZilla通过SFTP/SSH连接并加载为用

我已经在服务器上安装了一个Ubuntu,我试图只允许某些用户将scp文件保存到他们自己的主目录中。我阅读了有关执行此工作的
rbash
scponly
,对
/etc/passwd
进行了必要的更改,并验证了它们在通过ssh或scp直接连接到终端时是否正常工作

然而,当FileZilla作为这些用户中的任何一个登录时,它就能够随心所欲地在ls'ing和cd'ing上跳来跳去,我不知道为什么


我已经确保服务器上没有运行FTP守护进程(因此,据我所知,强制FileZilla通过SFTP/SSH连接并加载为用户指定的shell),除此之外,我什么都没有。

您可能没有禁用/chrooted SFTP

我想你是遵循了一些过时的指南。如今,当SFTP默认为OpenSSH
sshd
的内置功能时,shell级别的限制/chrooting不再适用于SFTP

如果要禁用SFTP,只需从
/etc/ssh/sshd\u config
中删除
子系统SFTP
指令即可。尽管它破坏了FileZilla,因为它不支持SCP协议

如果要保留SFTP,您有两种选择:

  • 更改
    子系统sftp
    以运行子进程
    /usr/libexec/openssh/sftp服务器,而不是
    内部sftp
    。这将使
    scponly
    /
    rbash
    限制适用

  • 现在,您最好使用OpenSSH的内置chrooting功能,而不是
    scponly
    /
    rbash

    请参阅
    ChrootDirectory
    指令:


谢谢。通过将子系统sftp更改为/usr/libexec/openssh/sftp server,我似乎已经获得了生效的限制,但Filezilla现在关闭了与exitcode 1的连接(从文档的外观来看,本质上是perms的东西)——我猜它不像我所认为的那样容忍rbash?使用ChrootDirectory%h与此类似——“服务器意外关闭了网络连接”。首先,我建议您忘记
scponly
/
rbash
,确保回滚为这些服务器所做的所有配置更改。只关注
ChrootDirectory
解决方案。另外,请确保使用
子系统sftp内部sftp
指令,而不是指向
sftp服务器的路径。例如,请参阅如果按照说明操作后仍然出现错误,请查看syslog/OpenSSH日志。我相信这些错误与FileZilla无关。Chrooting对SFTP客户端应该是透明的。我最终能够通过将受限制用户的主目录搜索到root,并在其中创建一个子文件夹来进行排序,允许他们写入。这不是世界上最优雅的解决方案,但FTP也不是一般的解决方案,它可以完成这项工作。您的指导很有帮助,谢谢!