代码之家  ›  专栏  ›  技术社区  ›  Daniel Von Fange

限制openssh只允许上载到特定目录

  •  0
  • Daniel Von Fange  · 技术社区  · 16 年前

    我需要从多个服务器运行备份到另一个服务器上的单个帐户。如果其中一个公共服务器受到破坏,我不希望另一个服务器在备份帐户上的文件受到破坏。

    我需要做的是只允许scp访问特定的目录,基于传入连接的ssh密钥。

    我知道我可以在授权的_keys文件中设置shell和几个基于每个密钥的选项。 http://www.manpagez.com/man/8/sshd/ (向下滚动至“授权密钥文件”)

    我不知道如何将内部sftp命令设置为只使用某个目录。我在机器上没有根目录,所以无法执行正常的内部sftp+chroot。

    1 回复  |  直到 16 年前
        1
  •  2
  •   Joshua    16 年前

    它不是那样工作的。

    您需要做的是为每个备份主机设置一个小型chroot监狱。它只需要能够运行sh和scp(/dev only needs/dev/null entry)。

    使用jailsh作为每个帐户的登录shell。

    jail sh是一个suid根登录shell,它将chrot jail设置到由两个连续斜杠、drops root priv和execs/bin/sh标记的目录中。