Ho un Raspberry Pi e posso accedervi tramite SSH (autenticazione tramite password utente) quando il mio laptop si trova nella stessa rete. Ora voglio accedervi da Internet.
Ho già impostato il mio router per inoltrare la porta al mio Raspberry Pi e ho installato fail2ban per (si spera) di rendere impossibile la password tramite la forza bruta.
La cosa strana è che ottengo una chiave diversa quando accedo al Pi su Internet invece che via LAN:
christoph@christoph-laptop-14-04:~$ ssh-keygen -H -F 192.168.1.92
# Host 192.168.1.92 found: line 9 type ECDSA
|1|Zz8zhCYwRu7jKa/bcUTnw/BzGmo=|m2E+0RwiVXcr8lAxbK/W13ZmZUA= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBAgUNwcHmVBowUoKvi9iLtoKifh/9qKAj6BNfQsYzYuoXtlYEnTUVLn4XpMYJ9+TMwL23ZDnmJuz8noKK3rFrYg=
christoph@christoph-laptop-14-04:~$ ssh-keygen -H -F [my global IP]
# Host 185.5.10.87 found: line 10 type ECDSA
|1|kEE5HDC1uBkqDN3SpQ8yFvwdj0A=|iDaNuB2Y8d3kIFPqFoXjrERRJ/0= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBAgUNwcHmVBowUoKvi9iLtoKifh/9qKAj6BNfQsYzYuoXtlYEnTUVLn4XpMYJ9+TMwL23ZDnmJuz8noKK3rFrYg=
Tutto tranne l'inizio è lo stesso. Allora perché l'inizio è diverso? L'indirizzo IP è codificato in questo o qualcosa del genere?
Un'altra cosa che mi confonde è che quando c'era una chiave diversa prima (ovviamente non riesco a connettermi perché la chiave è cambiata ma anche) Mi viene mostrato questo:
ECDSA key fingerprint is ed:47:24:c6:4e:c1:ca:99:d9:77:59:8f:01:12:85:cd
Riesco a capire quello del mio laptop tramite:
ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key.pub
e viene fornito nello stesso formato. Ma quando scrivo il mio Pi e eseguo lo stesso comando, l'output è:
256 SHA256:Npy6IbI8vDd4V3iCOcIVEsF4j2bsf9vbWcsf1ti8izE root@christoph-pi (ECDSA)
che non sembra avere nulla a che fare con ed:47:24:c6:4e:c1:ca:99:d9:77:59:8f:01:12:85:cd
.
Per prima cosa ho pensato che forse Npy6IbI8vDd4V3iCOcIVEsF4j2bsf9vbWcsf1ti8izE
fosse una codifica base 64 per ed:47:24:c6:4e:c1:ca:99:d9:77:59:8f:01:12:85:cd
che sembra essere in codice esadecimale con ogni byte separato dal prossimo con due punti, ma la lunghezza di Npy6IbI8vDd4V3iCOcIVEsF4j2bsf9vbWcsf1ti8izE
è 43 che non è è un multiplo intero di 4, quindi non è base64. Allora, cos'è?