We all know that the weakest link of SSH is key management: if you do not confirm by a secure out of band channel that the public host key of the device you are connecting to is correct, then SSH´s crypto will not help you.
SSH implements neither a CA hierarchy (like X.509 certificates) nor a web of trust (like PGP) so you are left checking the validity of host keys yourself. Still, it´s not so bad if you only connect to a small handful of well known servers. You will either have verified them all soon enough and not be bothered with it anymore, or system administrators will maintain a global known_hosts file that lists all the correct ones.
But it´s quite different when you manage a network of hundreds or thousands of devices. I find myself connecting to devices I´ve never connected to before on a regular basis and being prompted to verify the public host keys they are offering up. This happens in the course of something else that I am doing and I don´t necesarily have the time to check a host key. If I did have time, it´s hard to check it anyway: the device is just one of a huge number of network elements of no special significance to me and I didn´t install it and generate its key and I don´t know who did.Read Full Story