为什么向 /etc 递归添加读取权限会破坏 ssh?

为什么向 /etc 递归添加读取权限会破坏 ssh?

由于我不好意思分享的原因,我在远程服务器上以 root 身份运行了此命令:

chmod a+r -R /etc

一旦我退出 SSH 会话,我就无法通过 SSH 重新登录:

$ ssh myusername@<HOST>
Connection closed by <HOST> Port 22

现在,我意识到chmod上述操作是一个巨大的错误。但是,似乎应该只是添加对所有内容的读取权限,而不是删除任何权限,对吗?我的问题是:这究竟是如何破坏 SSH 的?

(此外,如果有人发现犯了类似的错误,我/etc使用以下方法恢复了默认权限这个答案,但我很幸运在其他地方仍有打开的 SSH 连接来执行此操作。)

答案1

SSH 对密钥权限非常挑剔。除了用户之外,任何人都不能读取私钥,这包括 的主机密钥sshd,当它找不到足够安全的主机密钥时,它会放弃。以下是我的系统中的示例日志,在执行 之后sudo chmod o+r /etc/ssh/*key

Apr 23 15:59:31 muru sshd[21516]: error: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Apr 23 15:59:31 muru sshd[21516]: error: @         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
Apr 23 15:59:31 muru sshd[21516]: error: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Apr 23 15:59:31 muru sshd[21516]: error: Permissions 0604 for '/etc/ssh/ssh_host_ed25519_key' are too open.
Apr 23 15:59:31 muru sshd[21516]: error: It is required that your private key files are NOT accessible by others.
Apr 23 15:59:31 muru sshd[21516]: error: This private key will be ignored.
Apr 23 15:59:31 muru sshd[21516]: sshd: no hostkeys available -- exiting.

答案2

您以递归方式更改了 下所有内容的权限/etc。您的大多数软件都将重要文件保存在此目录下。

在许多情况下,更改软件所需文件的权限可能会导致软件无法按预期运行。

你可能破坏了不止ssh。你可能需要重新安装操作系统,因为没有简单的方法可以撤消此命令造成的损害:此目录下每个文件的权限都不相同。

相关内容