¿Cuál es el significado de un signo igual = o == al final de una clave pública SSH?

39

Me acabo de dar cuenta de que la mayoría de los ske pubkeys en mis Author_keys terminan en == o =

P.ej

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

Sin embargo, hoy vi un pubkey sin un signo igual al final. También noté que el único lugar donde an = alguna vez ocurre en un pubkey es al final y nunca en ningún otro lugar.

Ahora tengo curiosidad por saber cuál es el significado de cero, uno o dos signos iguales al final de una clave de pub.

Lukas Loesche
fuente

Respuestas:

50

Creo que no hay una razón técnica, es simplemente un artefacto de Base64 y la longitud de la cadena. Pruébelo con cualquier codificador base 64

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]

Pero puedo estar equivocado sobre eso

Mancha
fuente
18
+ Es codificación base64, no tiene nada de especial. Artículo de Wikipedia sobre Base64 # Padding
Chris S
2
Es interesante que el RFC relevante ietf.org/rfc/rfc4716.txt no mencione esto, lo que puede sugerir que tiene razón.
dunxd
@dunxd Solo escaneé ese RFC, pero creo que se refiere al archivo .pub en lugar del authorized_keysarchivo, aunque creo que se aplica la misma situación. Dado que la clave son datos binarios pero el archivo debe ser texto, Base64 resuelve ese problema
Smudge,
55
@dunxd: El RFC dice que usa la codificación Base64, y al leer sobre Base64 deja en claro que rellena el final =.
Christoffer Hammarström