我可以将 SFTP 用作 SCP 吗?

我可以将 SFTP 用作 SCP 吗?

我的客户想要一个可通过 SCP 和 SFTP 访问的简单存储。将有两个用户帐户,一个是只读的,另一个是读写的。

出于安全原因,我希望尽可能地简化它:

  1. 我希望用户被限制在他们的主目录中,而无法退出
  2. 用户的根目录必须保持可写。遗憾的是,SSH 的带有 chroot 的 internal-sftp 失败了
  3. 我不想允许任何访问正常 shell
  4. 我不希望用户能够干扰文件的权限/所有者

到目前为止,我已经使用 SSH + MySecureShell 实现了 SFTP,它工作正常,而且看起来非常可靠。但是,SCP 不起作用,这是我的客户的要求之一。

  1. 有什么方法可以让 SCP 与 MySecureShell 配合使用吗?或者其他 shell?
  2. 如果没有,是否有办法像使用 scp 一样从命令行使用 sftp?我的意思是,不是以交互方式,而是使用尽可能接近 SCP 的语法。

答案1

/etc/ssh/sshd_config更改 SFTP 子系统类型时:

Subsystem       sftp    internal-sftp

这允许在没有任何 shell 的情况下执行所有文件系统操作。然后将文件中的用户 shell 更改passwd/bin/true或其他无害的内容。确保在 中提及添加的“shell”/etc/shells作为允许用作 shell 的合法二进制文件。

您还可以通过chroot的功能来限制用户internal-sftp

Match                   User alice 
  X11Forwarding         no
  AllowTcpForwarding    no
  ChrootDirectory       /some/place/alicedir

目录someplacealicedir应归 所拥有root,且除 外,其他任何人都无权写入root。 目录alicedir应包含 之类的目录uploadhtdocs否则 应归 所拥有,alice且具有 rwx------/700 权限。

相关内容