Me gustaría ver qué hosts hay en mi archivo known_hosts, pero no parece ser legible para humanos. ¿Es posible leerlo?
Más específicamente, hay un host al que puedo conectarme a través de varios nombres y quiero saber cuál es la huella digital que espero de mi archivo de hosts conocido.
Actualización: estoy usando OpenSSH_5.3p1 Debian-3ubuntu7, OpenSSL 0.9.8k 25 mar 2009
Una línea de mi archivo known_hosts se parece a esto,
|1|guO7PbLLb5FWIpxNZHF03ESTTKg=|r002DA8L2JUYRVykUh7jcVUHeYE= ssh-rsa AAAAB3NzaC1yc2EAAFADAQABAAABAQDWp73ulfigmbbzif051okmDMh5yZt/DlZnsx3DEOYHu3Nu/+THJnUAfkfEc1XkOFiFgbUyK/08Ty0K6ExUaffb1ERfXXyyp63rpCTHOPonSrnK7adl7YoPDd4BcIUZd1Dk7HtuShMmuk4l83X623cr9exbfm+DRaeyFNMFSEkMzztBYIkhpA2DWlDkd90OfVAvyoOrJPxztmIZR82qu/5t2z58sJ6Jm2xdp2ckySgXulq6S4k+hnnGuz2p1klviYCWGJMZfyAB+V+MTjGGD/cj0SkL5v/sa/Fie1zcv1SLs466x3H0kMllz6gAk0/FMi7eULspwnIp65g45qUAL3Oj
Respuestas:
Has
HashKnownHosts
configurado "yes
" en tussh_config
archivo, por lo que los nombres de host no están disponibles en texto sin formato.Si conoce el nombre de host que está buscando con anticipación, puede buscarlo con:
Aquí está la sección relevante de la
ssh-keygen(1)
página del manual:fuente
22
, entonces el formatoknown_hosts
es diferente. Luego debe usar el siguiente comando:ssh-keygen -H -F [host.example.com]:2222
Para futuros buscadores, este artículo (sin descargo de responsabilidad: no estoy afiliado) tiene un script de Perl relativamente simple para forzar direcciones IP y nombres de host con fuerza bruta
known_hosts
.http://blog.rootshell.be/2010/11/03/bruteforcing-ssh-known_hosts-files/
Permite comenzar desde una dirección IP particular. También podría modificarse fácilmente para usar un diccionario.
Además, en junio de 2014, el proyecto John the Ripper agregó soporte para el craqueo de hosts conocidos , que puede aprovechar múltiples núcleos de CPU, GPU, administración de diccionarios, etc.
También puede usar este fragmento de nmap para generar un diccionario de todas las direcciones IP RFC1918 para usar como diccionario:
fuente
No
ssh-keygen -l -f ~/.ssh/known_hosts
ayudar? (Utilizando-v
también obtienes bonitos mapas del tesoro, por ejemplofuente
ssh-keygen -l -f ~/.ssh/known_hosts -F <hostname>
ssh-keygen -l -F <hostname>
es aún más simpleHay una cadena / ip de host al principio de cada línea "hosts_hosts "(antes de la cadena" ssh-dss "o" ssh-rsa "):
fuente
awk '{print $1}' known_hosts
funciona el truco. Tenga en cuenta que los servidores que escuchan en puertos no estándar terminan como, por ejemplo,[some-server]:5555
enknown_hosts
.Use la
-l
opción parassh-keygen
enumerar huellas digitales y la-F
opción de buscar un nombre de host en suknown_hosts
archivo.Puede usar
ssh-keyscan
para comparar la huella digital en suknown_hosts
con la del servidor.fuente