当 SSH 服务器的密钥对(即
/etc/ssh/ssh_host_(rsa|dsa|ecdsa|etc)_key
以及
/etc/ssh/ssh_host_(rsa|dsa|ecdsa|etc)_key.pub
已更新,SSH 用户应该收到有关服务器的新公钥的通知。
假设将电子邮件地址作为每个用户的公钥注释,有没有办法自动通知每个 SSH 用户服务器密钥对的更改?
是否有一个工具可以做到这一点或者我应该编写自己的(shell|python|etc)
脚本?
答案1
值得注意的是,您的 DNS 服务器可能包含SSHFP
记录。这不一定能回答您的问题,但它可能是解决方案的一部分:
每当您的服务器密钥对发生更改时,您都可以通过某种方式更新这些 DNS 记录(我使用 puppet 执行此操作)。尽管我上次检查时发现,客户端集成仍然有限。
答案2
公钥就是:公开的。如果您以其他方式(网页或发送电子邮件,如您所建议的)发布公钥信息,它们都是有效的。但是……另一个对等方可能会对这种变化产生怀疑。有一种方法可以确认您发送的电子邮件是合法的吗?(也许,如果您使用 PGP)。如果您在“官方”网页上发布公钥,则意味着公钥是真实的?(也许,如果您的主页没有被黑客入侵)。
当 ssh 客户端尝试在公钥已更改时进行连接时,它会知道这一点。也许只需发送一封电子邮件通知有关密钥更改就足够了。