系统范围的 authorized_keys

系统范围的 authorized_keys

通过 RSA 密钥进行 SSH 身份验证:~/.ssh/authorized_keys。好的。

有没有办法设置系统范围的授权密钥,以便我可以登录任何帐户,包括新创建的帐户?


原因:我有一台服务器,我是唯一的管理员。用户帐户用于将网站彼此隔离,以防其中任何一个网站被黑客入侵。

我使用 SFTP 并经常创建新帐户,因此,我厌倦了复制 ~/.ssh/authorized_keys :)

答案1

要登录任意帐户吗?

作为管理员,您只需以自己的身份登录,然后使用 sudo 访问该帐户即可,但仅在必要时使用。

这种方法是一个严重的安全问题,因为如果您拥有的所有帐户的单一密钥被盗,那么您的系统就会完全受到损害。

我认为存在道德方面的考虑,因为你没有以任何方式表明你是账户所有者。文件可能是私人文件。如果一个人不那么道德,他可以以账户所有者的身份发送电子邮件,而且不会被追踪。

答案2

在大多数 Linux 系统上,该/etc/skel目录用于填充任何新帐户的主目录。如果您将.ssh包含 authorized_keys 文件的目录添加到其中,/etc/skel那么您将能够登录任何新帐户。

对于现有帐户,您可以编写脚本将您的密钥添加到authorized_keys系统上的所有文件中。

答案3

是的,出于安全、道德或组织原因,这通常不是一个好主意,但只需修改配置文件就可以做到这一点。手册页对此选项sshd_config(5)有如下说明AuthorizedKeysFile

 AuthorizedKeysFile
         Specifies the file that contains the public keys used for user
         authentication.  The format is described in the AUTHORIZED_KEYS
         FILE FORMAT section of sshd(8).  Arguments to AuthorizedKeysFile
         accept the tokens described in the TOKENS section.  After expan‐
         sion, AuthorizedKeysFile is taken to be an absolute path or one
         relative to the user's home directory.  Multiple files may be
         listed, separated by whitespace.  Alternately this option may be
         set to none to skip checking for user keys in files.  The default
         is ".ssh/authorized_keys .ssh/authorized_keys2".

因此,您所要做的就是在您的底部设置如下一行/etc/ssh/sshd_config

AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2 /usr/local/etc/universal_authorized_keys

然后/usr/local/etc/universal_authorized_keys手动或通过某些配置管理将你的个人 SSH 密钥填充到文件中。当然,你必须重新启动 sshd。

相关内容