I have some machines on my local network that I want to be able to log into from any other machine on my network.
This can be done by generating SSH key pairs for each user/client, then putting each of the public keys in each other machine's authorized_keys
file.
It sounds simple, but it is a nightmare scenario.
Every machine needs to know about every public key for every other client on the network, and adding or removing a machine means manually managing all of those public keys.
For a small number (<= 2) of machines it is manageable and possibly even preferable, but I would argue that 3 or more machines requires a different strategy for the sanity of the network admin, and this is where SSH Certificates come in.
The general idea with SSH Certificates is that you establish 2 certificate authorities: a User CA and a Host CA. The User CA is for authenticating users to hosts, and the Host CA is for authenticating hosts to users.