SSH:一个authorized_keys用于多个服务帐户

有没有一种方法来configurationSSH来检查多个用户的单个authorized_keys文件? 我知道我可以将公钥复制到每个用户的authorized_keys文件中,但为了便于pipe理,我希望为pipe理员提供一个允许他们login到所有用户(或特定用户组)的其他authorized_keys文件。

您可以使用/ etc / ssh / sshd_config中的AuthorizedKeysFile指令来执行此操作。 默认位置是.ssh/authorized_keys但是您可以使用包含绝对path的内容

 AuthorizedKeysFile /path/to/your/keyfile 

手册页说这个

AuthorizedKeysFile

指定包含可用于用户身份validation的公钥的文件。 AuthorizedKeysFile可能包含在连接设置过程中被replace的%Tforms的标记。 定义了以下标记:%%被replace为文字'%',%h被replace为被authentication用户的主目录,%u被replace为该用户的用户名。 在扩展之后,AuthorizedKeysFile被认为是绝对path或者是相对于用户主目录的绝对path。 默认值是“.ssh / authorized_keys”。

你的pipe理员应该使用sudosu (适合你的环境)。

ssh不是这个正确的工具。

矛盾的编辑 (对不起,看起来我被冠名失明,谢谢Zoredache ):

将所有服务帐户放在同一group ,使用该组作为sshd_config Match块的一部分指定您希望它们全部使用的AuthorisedKeysFile 。 (比赛组是这样的, 所有的账户都不受影响。)但是,他们将不再拥有单独的AuthorisedKeysFiles。 openssh-lpk可能允许个人账户拥有自己的密钥,但我不确定。

编辑 :你应该upvote @ Iain 上面的答案。 它是完整和准确的。 我在下面的答案是针对共享私钥 – 显然是我的一个误解。 我将在这里留下这个答案,因为我认为这是一个有价值的信息,而不是这个具体的问题。


我不知道你的用例,但我很想说“你做错了”。

每个用户应该有自己的kepair。 这样,当用户离开,转移,晋升为pipe理angular色或任何其他需要撤销权限的情况下,您只需撤消该密钥即可。 这也使得有效的审计更加困难。

如果你需要用户能够模拟其他用户,他们应该被configuration为使用sudo 。 共享SSH密钥通常不是一个好主意。