我可以将 SFTP 用作 SCP 吗?

Jan*_*ček 1 linux ssh sftp

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

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

  1. 我希望用户被限制在他们的主目录中而没有办法出去
  2. 用户的根目录必须保持可写。不幸的是,SSH 的带有 chroot 的 internal-sftp 失败了
  3. 我不想允许任何对普通 shell 的访问
  4. 我不希望用户能够弄乱文件的权限/所有者

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

  1. 有什么办法可以让 SCP 与 MySecureShell 一起工作?还是其他什么壳?
  2. 如果没有,是否有某种方法可以像 scp 一样从命令行使用 sftp?我的意思是,不要交互地使用尽可能接近 SCP 的语法。

Kon*_*bas 6

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

Subsystem       sftp    internal-sftp
Run Code Online (Sandbox Code Playgroud)

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

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

Match                   User alice 
  X11Forwarding         no
  AllowTcpForwarding    no
  ChrootDirectory       /some/place/alicedir
Run Code Online (Sandbox Code Playgroud)

目录someplace并且alicedir应该归root任何人所有,除了root. 目录alicedir应包含类似upload,htdocs否则应由alicerwx------/700 权限拥有的目录。