Perché la chiave pubblica ssh del server non assomiglia alla chiave negli host noti del client?

4

Dalla mia ingenua comprensione di ssh, il server condivide la sua chiave pubblica ( /etc/shh/ssh_host_rsa_key.pub ) con il client, che poi lo aggiunge alla lista di host conosciuti ( /user/.ssh/known_hosts ). Quindi, mi aspetterei se guardassi in quei due file per vedere una stringa lunga identica in entrambi (la "chiave"). Quando paragono il testo in questi due file posso vedere una stringa in entrambi che è la stessa all'inizio, ma poi diventa diversa. Perché non riesco a vedere la stessa lunga stringa in entrambi i file (che suppongo sia la chiave)?

    
posta kotozna 19.06.2015 - 18:24
fonte

2 risposte

1

Per la privacy.

Con le versioni moderne di OpenSSH, il file known_hosts sul client contiene un hash del nome del server e del pubblico chiave, piuttosto che il nome e la chiave pubblica direttamente. Il motivo per cui si memorizza un hash è che se qualcuno ottiene una copia di questo file (ad esempio un backup trapelato), non è possibile scoprire quali server sono registrati, cioè non possono scoprire a quali siti si è connessi. Possono verificare le ipotesi, ovviamente: è inevitabile poiché il client legittimo deve essere in grado di farlo.

L'utilità ssh-keygen ha alcune opzioni per manipolare le voci known_hosts , ma ovviamente non può convertire un hash nel formato non hash. Puoi impostare HashKnownHosts no nella configurazione del tuo client ( ~/.ssh/known_hosts ) per disattivare l'hashing, quindi le voci saranno in un formato in cui la chiave pubblica è chiaramente visibile.

    
risposta data 12.09.2016 - 11:00
fonte
0

Per me, contiene la stessa stringa. il server ha:   ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLmw2JjbKMO5LXTcJ67et6TBZeLff1WghM6koKjiHGh+gBbZzHrhDj20MuTxTB1kaTYh7f9T2G/zmhVpFMyUUoQ=

e il client ha

|1|some_base64|more_base64 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLmw2JjbKMO5LXTcJ67et6TBZeLff1WghM6koKjiHGh+gBbZzHrhDj20MuTxTB1kaTYh7f9T2G/zmhVpFMyUUoQ= .

man sshd dice, in parte:

SSH_KNOWN_HOSTS FILE FORMAT

Each line in these files contains the following fields: markers (optional), hostnames, bits, exponent, modulus, comment. The fields are separated by spaces.

hostnames may be stored in a hashed form which hides host names and addresses should the file's contents be disclosed. Hashed hostnames start with a ‘|’ character.

Bits, exponent, and modulus are taken directly from the RSA host key; they can be obtained, for example, from /etc/ssh/ssh_host_key.pub. The optional comment field continues to the end of the line, and is not used.

    
risposta data 19.06.2015 - 18:53
fonte

Leggi altre domande sui tag