As linhas no arquivo known_hosts
não são criptografadas, elas são criptografadas. Você não pode descriptografá-los, porque eles não são criptografados. Você não pode "desenterrá-los", porque o que é um hash - dado o hash, é impossível descobrir a string original. A única maneira de "desvendar" é adivinhar a string original e verificar sua suposição.
Se você tiver uma lista de nomes de host, poderá transmiti-los para ssh-keygen -F
e substituí-los pelo nome do host.
while read host comment; do
found=$(ssh-keygen -F "$host" | grep -v '^#' | sed "s/^[^ ]*/$host/")
if [ -n "$found" ]; then
ssh-keygen -R "$host"
echo "$found" >>~/.ssh/known_hosts
fi
done <hostnames.txt
¹ Em um sentido prático, isto é, seria necessário que todos os computadores existentes hoje tivessem mais tempo do que a idade atual do universo para fazê-lo.