设置 SFTP+SSHFS

设置 SFTP+SSHFS

设置 SFTP+SSHFS

我配置了一些 Synology NAS,使其能够与某些特殊用户一起使用 SFTP 和 SSHFS。需要注意的是,此用户不是root,而是其他用户。虽然我可以使用普通的 SSH 和root密钥对,但 NAS 本身根本不允许root使用 SFTP。所以我需要创建一个不同的用户,允许为此使用 SFTP 等。应用程序级别权限的东西对于 来说根本不可能root,因此 SFTP 根本无法工作。

总的来说,这很好用,我可以通过某些特殊客户端使用普通 SFTP 访问目录,并使用来自两个不同主机的 Linux 默认设置访问 SSHFS。

设置网络

不确定这是否也很重要,但 SFTP 客户端与 NAS 属于同一私有网络。当我使用普通 SFTP 时,我首先会创建一些通往同一私有网络的 OVPN 隧道。

另一方面,SSHFS 并非如此。需要使用 SSHFS 的客户端改用 SSHS,JumpHost首先创建与 NAS 网络前面的防火墙的连接,然后该防火墙将访问转发到 NAS 本身。

虽然这两种用例略有不同,但我没有在 NAS 上启用任何 IP 过滤或类似功能!不过,我可能错过了它的 web-UI 或 SSH 配置文件中的某些内容。

问题

我需要使用 SSHFS 读取的一些文件是某些系统的备份,这些文件归 拥有,root并且具有权限,因此只有root才能读取这些文件。当我专门创建的 SFTP 用户只是内置组的成员时users,它根本无法访问这些文件,无论是使用普通的 SFTP 客户端还是 SSHFS。这有点道理。

另一方面,事情变得有趣了,在我将该用户添加到内置组后administrators,我能够root立即读取所有独有文件,但只能使用普通的 SFTP 客户端。尝试使用 SSHFS 读取文件时,仍然拒绝访问文件。

但是 SSHFS 有一件事发生了变化:root独占目录也可以浏览了!似乎只有在实际尝试读取文件时才禁止访问。

思考

由于 SFTP 客户端和 SSHFS 使用相同的底层协议 SFTP,从 NAS 的角度来看,所使用的单个客户端不会有任何区别。唯一可能产生差异的是,例如提供给 SFTP 的选项、进行身份验证的用户等。SFTP 客户端无法转发任何选项,查看 SSHFS 的调试日志,实际上使用的是与 SFTP 客户端相同的用户。

观察结果

可能是 NAS 已经默认特别配置了 SFTP:使用 SFTP 客户端或 SSHFS 读取符号链接时,NAS 似乎始终已解析这些符号链接。我File not found在日志和提及中收到很多 -type 错误readlink。据我了解,默认情况下不应该出现这种情况,除非例如follow_symlinks通过 SSHFS 转发,但对我来说情况并非如此!

问题

知道 SSHFS 和 SFTP 客户端之间的差异可能来自哪里吗?

您知道我可以在哪里查看 SSH 是否JumpHost有所不同吗?

谢谢!

相关内容