使用 openssh 的公钥/私钥时限制 sftp 对特定文件夹的访问

使用 openssh 的公钥/私钥时限制 sftp 对特定文件夹的访问

sftp使用公钥/私钥时,是否可以限制用户可以访问的文件夹?

假设我有一台服务器user1,其主文件夹是/home/user1。我已经对其进行了配置,因此user1可以使用公钥/私钥通过 SSH 连接到服务器。现在他们也可以sftp使用相同的公钥/私钥连接到服务器,这样他们就可以看到与通过 SSH 连接时相同的文件/文件夹。

我想创建一组新的公钥/私钥,仅用于sftp但我想让这组密钥只允许他们查看文件/文件夹/home/user1/data/

我不知道如何实现这一点,authorized_keys所以我想知道是否还有其他方法可以实现?

更新

我想要将不同设备被入侵时的风险降至最低的原因。换句话说,如果我的某个带有公钥/私钥的设备被入侵,黑客就只能做那个公钥/私钥组合允许他们做的事情。

例如:

  • 我家里有一台运行 Linux 的服务器,上面运行着 OpenSSH 服务器
  • 我家里有几台台式机,使用公钥/私钥访问服务器
  • 我有一台笔记本电脑,它将运行基于 SFTP 的同步客户端,以便将笔记本电脑C:\Users\me\Documents与服务器同步/home/me/docs/laptop/

对于最后一条,我想确保它的安全,以便如果我的笔记本电脑受到攻击,恶意行为者将无法使用公钥/私钥来访问我的服务器的其他部分。

我的同步客户端将使用自动化,因此我不能使用密码。使用公钥/私钥会很好,因为任何像样的 SFTP 客户端都可以使用 SSH 公钥/私钥。但是,即使我的同步客户端仅配置为访问/home/me/docs/laptop/,密钥也会在笔记本电脑上,因此如果恶意行为者访问了笔记本电脑,他们可以使用密钥通过 ssh 连接到盒子并访问其他文件夹。

我研究了 chrooting,但它似乎基于登录 ID 而不是所使用的公钥/私钥。我不想创建新的登录 ID,因为 中的文件/文件夹/home/me将全部归该帐户所有me,而且我不想乱授予其他帐户访问不同文件夹的权限,例如/home/me/docs/laptop/。此外,使用 chroot 时,主文件夹必须归 root 所有,这对于我的用例不起作用。

答案1

要求澄清:

您说的是 Linux,但没有说明配置文件锁定/SELinux 用户锁定是否在起作用,或者这是什么 Linux 操作系统?

您提到有多个用户(目前或计划中的),但似乎只暗示多个主机上有 1 个用户。仍然不明白为什么 sftp chroot 在这里不起作用。

相关内容