6

I've created a SSH authentication key (with ssh-keygen) in two different servers, both with a useful comment, but the public key of one server has == between the key and the comment, while the other has no separator at all.

Is this right?

1 Answer 1

9

You SSH key is encoded in Base 64. This format is commonly used in cryptography (and beyond) to store binary information in ASCII format.

And, in base64, the '=' sign is a padding character, with a very specific meaning:

The '==' sequence indicates that the last group contained only 1 byte, and '=' indicates that it contained 2 bytes. The example below illustrates how truncating the input of the whole of the above quote changes the output padding

source: http://en.wikipedia.org/wiki/Base64#Padding

In fact, there is no separator between the key and the comment. SSH know that the public key is composed of 3 things:

<key-type>[space]<public-key>[space]<comment>

The presence of a space at the end of the public key is the separator between the key and the comment. The equal '=' sign you are seeing simply indicates a padding at the end of the public key.

1
  • Thank you for your answer. I didn't know that the separators were just blank spaces.
    – nozimica
    Commented Oct 30, 2011 at 23:12

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .