SSH公開キーの末尾の等号=または==の意味は何ですか?


39

authorized_keysのssh pubkeysのほとんどが==または=で終わることに気付きました

例えば

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

しかし、今日は最後に等号のないパブを見ました。また、パブキーで=が発生する唯一の場所は最後であり、他の場所ではないことに気付きました。

今、私はちょうどパブキーの終わりにゼロ、1または2つの等号の意味は何ですか?

回答:


50

技術的な理由はなく、Base64のアーティファクトと文字列の長さだけだと思います。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]

しかし、私はそれについて間違っているかもしれません


18
+それはbase64エンコーディングで、特別なことは何もありません。Base64#Paddingに関するウィキペディアの記事
クリスS

2
興味深いことに、関連するRFC ietf.org/rfc/rfc4716.txtではこれに言及していないので、正しいことを示唆している可能性があります。
dunxd

@dunxd私はそのRFCのみをスキャンしましたが、それはファイルではなく.pubファイルを参照してauthorized_keysいると思いますが、同じ状況が当てはまると思います。キーはバイナリデータですが、ファイルはテキストである必要があるため、Base64はその問題を解決します。
スマッジ

5
@dunxd:RFCはBase64エンコーディングを使用していると述べており、Base64について読むと、末尾にが埋め込まれていることが明確になります=
クリストファーハンマルストロム

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.