为什么无密码 ssh 的 .ssh 目录权限需要为 700

为什么无密码 ssh 的 .ssh 目录权限需要为 700

我正在按照步骤操作这里无需密码即可使用 SSH

为了从 userA@hostA 登录到 userB@hostB,~/.ssh/authorized_keyshostB 上的 需要包含 userA@hostA 的公钥。

当我第一次以 userB@hostB 身份登录时创建 .ssh/ 时,它的权限是771 或 drwxrwxr-x在这种权限状态下,我无法在没有密码的情况下从 userA@hostA ssh 到 userB@hostB。

但是当我chmod 700 .ssh在userB@hostB上时,我就可以愉快地无需密码进行SSH。

有人能向我解释一下为什么通过提供不太严格的权限就无法实现无密码 SSH 吗?

答案1

为了保护您的信息,否则系统上的其他用户可以将他自己的密钥添加到您的authorized_keys文件中并轻易冒充您。

答案2

没有要求权限必须是700,只是除了所有者之外任何人都不能写入。并且它必须由您自己或 root 拥有。

只有当上述内容适用于从文件系统根目录到文件的整个路径时,它才是安全的authorized_keys

某些发行版默认将文件和目录创建为组可写(组中只有您自己)。但sshd不会检查谁在组中,authorized_keys如果文件或目录是组可写的,它就会拒绝使用。

我不知道有什么理由默认将文件和目录创建为可写组。我从未见过将其更改为仅所有者可写会导致问题。

相关内容