SSH公開鍵注釈区切り記号

SSH公開鍵注釈区切り記号

2つの異なるサーバーでSSH認証キー(with)を作成しました。ssh-keygenどちらにも便利な説明がありますが、あるサーバーの公開鍵はキーと説明の間にあり、==もう一方のサーバーの公開鍵はキーと説明の間にあります。すべて。

これは正しいですか?

答え1

SSHキーはBase 64でエンコードされています。この形式は、バイナリ情報をASCII形式で保存するために暗号化(およびその他のフィールド)で一般的に使用されます。

さらに、base64では、「=」記号は非常に具体的な意味を持つパディング文字です。

'=='シーケンスは最後のグループに1バイトしか含まれていないことを意味し、 '='は2バイトが含まれることを意味します。次の例は、上記で参照した入力全体を切り捨てると、出力パディングがどのように変更されるかを示しています。

源泉:http://en.wikipedia.org/wiki/Base64#Padding

実際、キーとコメントの間に区切り文字はありません。 SSHは、公開鍵が3つの部分で構成されていることを知っています。

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

公開鍵の末尾にあるスペースは、鍵とコメントの間の区切り記号です。表示される等号「=」は、公開鍵の末尾にあるパディングのみを示します。

関連情報