Pregunta:
¿Hay alguna forma de obtener mediante programación una huella digital de clave de servidor SSH sin autenticarse en ella?
Estoy intentando ssh -v user@host false 2>&1 | grep "Server host key"
, pero se cuelga esperando una contraseña si la autenticación basada en clave no está configurada.
Respuesta:
Puede hacer esto combinando ssh-keyscan
y ssh-keygen
:
$ file=$(mktemp)
$ ssh-keyscan host > $file 2> /dev/null
$ ssh-keygen -l -f $file
521 de:ad:be:ef:de:ad:be:ef:de:ad:be:ef:de:ad:be:ef host (ECDSA)
4096 8b:ad:f0:0d:8b:ad:f0:0d:8b:ad:f0:0d:8b:ad:f0:0d host (RSA)
$ rm $file
(desafortunadamente, el ssh-keyscan host | ssh-keygen -l -f /dev/stdin
mucho más simple ssh-keyscan host | ssh-keygen -l -f /dev/stdin
no funciona)