Isto não é o portscan
Aqui, usaremos apenas os utilitários básicos ssh ssh-keyscan
e ssh-keygen
para conexões de rede / conversão de chaves.
Se você conhece a impressão digital do servidor
e quer procurá-lo, então você pode fazer:
for x in {1..254}; do ssh-keyscan 10.0.0.$x > /tmp/ssh-scan.log 2> /dev/null; cat /tmp/ssh-scan.log; ssh-keygen -lf /tmp/ssh-scan.log | grep -v 'not a public key file' ; done
e imprimirá impressões digitais de todos os hosts encontrados. A linha acima vai de 10.0.0.1 a 10.0.0.254, tenta obter chaves públicas de cada host e, finalmente, converte a chave pública em impressão digital e a exibe. As mensagens de erro mais comuns são redirecionadas para o buraco negro encontrado em /dev
.
Ou talvez pesquise por chave pública
Então, a mesma coisa sem o conversor de impressões digitais, exibe chaves públicas para todos os hosts entre 10.0.0.0 e 10.0.0.255:
for x in {1..254}; do ssh-keyscan 10.0.0.$x 2> /dev/null; done
Resposta final, script ssh seek'n'connect
Originalmente postado por user229010 como comentário, eu apenas limpei: -)
for i in {1..255}; do
echo trying remote-$i
ping -w 1 -c 1 remote-$i > /dev/null
if [ $? -eq 0 ]; then
# this is a live ip
echo remote-$i is up
if ssh-keyscan remote-ca$i | grep $expected_key -m1 -c > /dev/null; then
# this is my machine
ssh remote-$i
exit 0
fi
fi
done