Cuando nos conectamos por primera vez a un servidor SSH, se nos muestra la huella digital de su clave pública para que tengamos la oportunidad de verificar que ese es el servidor al que realmente deseamos conectarnos y no otro que de alguna forma está impersonándolo se está haciendo pasar por aquél.
Mi antiguo yo tenía la fea costumbre de dar por buena dicha huella digital, confiando en que la resolución DNS, el enrutamiento y otras cuantas cosas no estuvieran comprometidos. Hasta hoy, hoy me he hecho una simple pregunta, ¿cómo verifico que esa huella es la del servidor que ya conozco y tengo reconocido en otra cuenta? Cómo no, la respuesta estaba en StackExchange – superuser.
% ssh-keygen -l -f ~/.ssh/known_hosts
2048 c2:e7:c0:9f:cd:c8:54:88:ac:b3:6b:a6:51:73:2b:e3 mach1,192.168.1.3 (RSA) 2048 a2:5e:8c:4e:2e:be:be:eb:23:12:5e:fe:6c:4b:23:dd mach2,192.168.1.1 (RSA) 1024 ae:5f:bc:e3:33:c3:dd:45:1e:18:1a:46:d1:d6:d2:39 mach3,192.168.1.6 (RSA) ... ...
Y para nuestro servidor en concreto pues:
% ssh-keygen -l -f ~/.ssh/known_hosts -F mach1
2048 c2:e7:c0:9f:cd:c8:54:88:ac:b3:6b:a6:51:73:2b:e3 mach1 (RSA)