Como posso confirmar a identidade do host SSH remoto que estou tentando conectar?

1

Estou tentando depurar um problema que tenho ao tentar conectar-me a um host SSH pela WAN. Eu estou procurando uma maneira de confirmar que meu cliente está atingindo o host correto e não é roteado em outro lugar ao longo do caminho. Eu tenho acesso tanto ao cliente quanto ao host. Talvez haja uma maneira de monitorar todas as solicitações de conexão SSH no lado do host para confirmar que a minha solicitação está realmente chegando a ele?

O host é um Raspberry Pi rodando Raspbian, a versão SSH é OpenSSH_6.0p1 Debian-4, OpenSSL 1.0.1e 11 de fevereiro de 2013.

    
por Abdul 27.01.2014 / 08:52

2 respostas

4

Duas coisas que você pode fazer:

  1. Leia os arquivos de log no servidor. Qual arquivo de log vai depender de como seu sistema está configurado; comece procurando por /var/log/secure e /var/log/messages . Se você não encontrar logs do sshd, verifique a configuração do seu syslog para onde authpriv as mensagens vão.

  2. Verifique a chave pública SSH retornada pelo servidor. Faça isso executando o comando

    ssh-keyscan hostname > hostname-lan.pub na lan e

    ssh-keyscan hostname > hostname-wan.pub na WAN.

    Em seguida, compare os dois arquivos ( diff hostname-lan.pub hostname-wan.pub ). Se você está alcançando o mesmo servidor, não deve haver diferença. (A menos que você esteja usando nomes de host diferentes; nesse caso, o nome do host será diferente, mas o resto da chave será o mesmo.)

por 27.01.2014 / 09:09
0

Maybe there a way to monitor every SSH connection request on the host's side to confirm that my request is actually reaching it?

Sim, o sshd produzirá uma copiosa saída de log no host que se parece com:

Jan 26 13:49:55 Argon sshd[9928]: Connection from 1.2.3.4 port 42774
Jan 26 13:49:56 Argon sshd[9928]: Found matching DSA key: ...
Jan 26 13:49:56 Argon sshd[9928]: Postponed publickey for joseph from 1.2.3.4 port 42774 ssh2 [preauth]
Jan 26 13:49:56 Argon sshd[9928]: Found matching DSA key: ...
Jan 26 13:49:56 Argon sshd[9928]: Accepted publickey for joseph from 1.2.3.4 port 42774 ssh2
Jan 26 13:49:56 Argon sshd[9928]: pam_unix(sshd:session): session opened for user joseph by (uid=0)
Jan 26 13:49:56 Argon sshd[9928]: User child is on pid 9933
Jan 26 13:50:32 Argon sshd[9933]: Received disconnect from 1.2.3.4: 11: disconnected by user
Jan 26 13:50:32 Argon sshd[9928]: pam_unix(sshd:session): session closed for user joseph

Por padrão, essas mensagens são prioridade muito baixa para aparecer nos registros padrão da Debian. Você pode ter que ajustar o sshd ou o daemon syslog de acordo. Se o seu host Raspbian é similar a minha máquina Debian (deve ser), então crie o arquivo /etc/rsyslog.d/everything.conf com o conteúdo:

*.info                       -/var/log/everything

Isso fará com que todas as mensagens de log de informações de nível ou acima apareçam no arquivo /var/log/everything . Isso deve fornecer uma saída semelhante ao meu exemplo acima.

    
por 27.01.2014 / 09:06

Tags