如何在使用 SSH-Key 时禁用 Google 计算引擎重置 SFTP 文件夹权限

如何在使用 SSH-Key 时禁用 Google 计算引擎重置 SFTP 文件夹权限

目前正在运行 Google 计算引擎实例并在服务器上使用 SFTP。

按照此处列出的步骤将用户锁定到 SFTP 路径:https://bensmann.no/restrict-sftp-users-to-home-folder/

要将用户锁定到某个目录,该用户的主目录需要由 root 拥有。最初,设置工作正常,但发现Google 计算引擎偶尔会“自动重置”权限给用户

我使用的是 Google Cloud Console 中设置的 SSH 密钥,该密钥与用户名相关联。我猜想 Google Compute Engine 正在使用此“元数据”并重新配置文件夹权限以匹配与 SSH 密钥相关联的用户的权限。

有什么办法可以禁用这个“自动重置”吗?或者,是否有更好的方法来托管 SFTP 并将单个用户锁定到 SFTP 路径,而无需将主文件夹所有权更改为 root?

答案1

有几种解决方案 - 一种是在操作系统级别(如@Marco Martinelli建议)使用cron

我知道这绝对是野蛮的,但除非有更好的解决方案,否则我会使用这个 cronjob 来保持正确的所有权:* * * * * chown root:root /path/to/fix/

接下来是在虚拟机中手动创建用户帐户 - 这样他们的权限就不会被覆盖账户守护进程

GCE 实例上运行着一个帐户守护进程,负责将元数据中的用户帐户配置到 VM 实例。如果您在 VM 上手动创建用户帐户,则帐户守护进程不会修改这些帐户。

最后,我认为最适合你的是 OS 登录功能@Faizan提及:

另一个解决方案是使用操作系统登录该功能为用户提供对虚拟机的 SSH 访问,但不授予他们项目编辑者或所有者权限。

现在每个人都可以使用它您可以在整个项目范围内或单独启用它针对单个(或多个)实例。之后,您分配适当的角色(具有您需要的权限)提供给需要访问的用户。阅读链接的文档,因为它详细解释了整个过程。

相关内容