Intento encontrar un script para descifrar (deshacer) los nombres de host ssh en el archivo known_hosts pasando una lista de hostnamses .
Entonces, hacer exactamente lo contrario de :
ssh-keygen -H -f known_hosts
O también, para hacer lo mismo si la configuración ssh HashKnownHosts está establecida en No:
ssh-keygen -R know-host.com -f known_hosts
ssh-keyscan -H know-host.com >> known_hosts
Pero sin volver a descargar la clave de host (causada por ssh-keyscan).
Algo como:
ssh-keygen --decrypt -f known_hosts --hostnames hostnames.txt
Donde hostnames.txt contiene una lista de nombres de host.
ssh
encryption
hostname
ssh-keygen
Xorax
fuente
fuente
known_hosts
. ¿Qué hay que descifrar?Respuestas:
Las líneas en el
known_hosts
archivo no están encriptadas, están en hash. No puede descifrarlos, porque no están cifrados. No puedes "deshacerlos", porque de eso se trata un hash : dado el hash, es imposible¹ descubrir la cadena original. La única forma de "deshacer" es adivinar la cadena original y verificar su suposición.Si tiene una lista de nombres de host, puede pasarlos
ssh-keygen -F
y reemplazarlos por el nombre de host.¹ En un sentido práctico, es decir, tomaría todas las computadoras existentes hoy más tiempo que la edad actual del universo para hacerlo.
fuente
La página del comando man ssh-keygen (1) dice para la
-F hostname
opción:Esto parece ser lo que quieres.
fuente
known_hosts
archivo consed
.