Gostaria de ver o que os hosts estão no meu arquivo known_hosts, mas ele não parece legível por humanos. É possível lê-lo?
Mais especificamente, há um host ao qual posso conectar-me através de vários nomes e quero descobrir qual é a impressão digital que espero do meu arquivo de hosts conhecidos.
Atualização: Estou usando o OpenSSH_5.3p1 Debian-3ubuntu7, OpenSSL 0.9.8k 25 de março de 2009
Uma linha do meu arquivo known_hosts se parece com isso,
|1|guO7PbLLb5FWIpxNZHF03ESTTKg=|r002DA8L2JUYRVykUh7jcVUHeYE= ssh-rsa AAAAB3NzaC1yc2EAAFADAQABAAABAQDWp73ulfigmbbzif051okmDMh5yZt/DlZnsx3DEOYHu3Nu/+THJnUAfkfEc1XkOFiFgbUyK/08Ty0K6ExUaffb1ERfXXyyp63rpCTHOPonSrnK7adl7YoPDd4BcIUZd1Dk7HtuShMmuk4l83X623cr9exbfm+DRaeyFNMFSEkMzztBYIkhpA2DWlDkd90OfVAvyoOrJPxztmIZR82qu/5t2z58sJ6Jm2xdp2ckySgXulq6S4k+hnnGuz2p1klviYCWGJMZfyAB+V+MTjGGD/cj0SkL5v/sa/Fie1zcv1SLs466x3H0kMllz6gAk0/FMi7eULspwnIp65g45qUAL3Oj
Respostas:
Você
HashKnownHosts
definiu "yes
" em seussh_config
arquivo, para que os nomes de host não estejam disponíveis em texto sem formatação.Se você souber o nome do host que procura com antecedência, poderá pesquisá-lo com:
Aqui está a seção relevante da
ssh-keygen(1)
página de manual:fonte
22
, o formatoknown_hosts
será diferente. Então você deve usar o seguinte comando:ssh-keygen -H -F [host.example.com]:2222
Para futuros pesquisadores, este artigo (sem exoneração de responsabilidade: não sou afiliado) tem um script Perl relativamente simples para inserir IPs e nomes de host com força bruta
known_hosts
.http://blog.rootshell.be/2010/11/03/bruteforcing-ssh-known_hosts-files/
Permite iniciar a partir de um endereço IP específico. Também poderia ser facilmente modificado para usar um dicionário.
Além disso, em junho de 2014, o projeto John the Ripper adicionou suporte ao cracking unknown_hosts , que pode tirar proveito de vários núcleos de CPU, GPUs, manipulação de dicionário etc.
Você também pode usar esse snippet do nmap para gerar um dicionário de todos os endereços IP do RFC1918 para usar como dicionário:
fonte
Será que
ssh-keygen -l -f ~/.ssh/known_hosts
ajuda? (Usando-v
você também obtém bons mapas de tesouros, por exemplo,fonte
ssh-keygen -l -f ~/.ssh/known_hosts -F <hostname>
ssh-keygen -l -F <hostname>
é ainda simplierHá uma string de host / ip no início de cada linha "unknown_hosts" (antes da string "ssh-dss" ou "ssh-rsa"):
fonte
awk '{print $1}' known_hosts
faz o truque. Esteja ciente de que os servidores que escutam em portas não padrão acabam como, digamos,[some-server]:5555
emknown_hosts
.Use a
-l
opção parassh-keygen
listar impressões digitais e a-F
opção para procurar um nome de host no seuknown_hosts
arquivo.Você pode usar
ssh-keyscan
para comparar a impressão digital na suaknown_hosts
com a do servidor.fonte