Qual è il significato di un segno di uguale = o == alla fine di una chiave pubblica SSH?


39

Ho appena notato che la maggior parte dei pubke ssh nei miei authorized_keys termina con == o =

Per esempio

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA9ZUwxXn2HZAAUswoaV8t2sQPvolVWDI053f0giNN154Zyi9FtWJKvyLHXoxW4IzFxgx+m6EYqXG/XCtfamLhwvGZv9FXkgQKeF6HJv/rjyKRBHPRyX0vV4S9uQU+xQV7f0Ock3urSzbUyoCgngA8Ax6AkYGmMTLLjx1HOBO/TJ477aysWt4IAg1gviT50I4xOYiHT4vC67czoDTnPl0UfKQJaM0+6WrneK7FJbd/8CAX7P7IxOhj1OxVbnEoh9FvecLbSDdOx/LF+kJcav/LThuoG7NR+Y+rS9lNkta3/KPi3IBMPum+bZpXJF7fkHl9Kx/iOMitT7KjNW/mty74xw== foo@bar

Tuttavia oggi ho visto un pubkey senza un segno uguale alla fine. Inoltre ho notato che l'unico posto in cui an = si verifica mai in un pubkey è alla fine e mai altrove.

Ora sono solo curioso di sapere qual è il significato di zero, uno o due segni uguali alla fine di una chiave da pub?

Risposte:


50

Credo che non ci siano ragioni tecniche, è semplicemente un artefatto di Base64 e la lunghezza della stringa. Provalo con qualsiasi codificatore 64 di base

1     -> MQ==     (1 characters, 2 equals)
12    -> MTI=     (2 characters, 1 equals)
123   -> MTIz     (3 characters, 0 equals)
1234  -> MTIzNA== (4 characters, 2 equals)
[repeat]

Ma potrei sbagliarmi


18
+ È la codifica base64, niente di speciale. Articolo di Wikipedia su Imbottitura Base64 #
Chris S,

2
È interessante notare che il RFC ietf.org/rfc/rfc4716.txt pertinente non ne parla, il che potrebbe suggerire che hai ragione.
Dunxd,

@dunxd Ho scansionato solo quella RFC ma credo che si riferisca al file .pub piuttosto che al authorized_keysfile, anche se penso che si applichi la stessa situazione. Poiché la chiave è costituita da dati binari ma il file deve essere di testo, Base64 risolve questo problema
Sfumino

5
@dunxd: La RFC afferma di usare la codifica Base64 e la lettura di Base64 chiarisce che corregge la fine =.
Christoffer Hammarström,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.