SSH指紋が16進ではなくBase64形式で提供されるのはなぜですか?

SSH指紋が16進ではなくBase64形式で提供されるのはなぜですか?

sshサーバーに接続すると、16進指紋が表示されるという古い質問がありました。

今、なぜbase64形式で提供されるのですか?利点は何ですか?

私はMD5それが壊れていてデフォルトはnowであることを知っていますが、sha256指紋形式の場合、base64エンコーディングと16進文字列は同じことを示します。では、フォーマットを変更するとどのような利点がありますか?

ベストアンサー1

変更された出力形式だけでなく、指紋を生成するために使用されるアルゴリズムも同様です。以前はMD5でしたが、今はSHA256です。 MD5はさまざまな面で破損しており、一般的なアドバイスSHA256などを使用してください。そのような変化には長い時間がかかりました。

~からリリースノート:

  • キーフィンガープリントに使用されるアルゴリズムを制御するために、FingerprintHashオプションとssh(1)それsshd(8)に対応するコマンドラインフラグを他のツールに追加しました。
    デフォルト値がMD5からSHA256に変更され、フォーマットが16進数からbase64に変更されました。

    指紋は今ハッシュアルゴリズムを期待しています。
    新しい形式の例:SHA256:mVPwvezndPv/ARoIadVY98vAC0g+P/5633yTC4d/wXE
    ビジュアルホストキーも異なります。

君はまだ手に入る古い出力:

ssh -o FingerprintHash=md5 ...

SHA256ハッシュ値は256ビット出力を持ち、16進数64文字に変換されます。これは、16進32文字MD5ハッシュ長の2倍です。 Base64でエンコードされたSHA256文字の長さはわずか44バイトです(=とにかく最後のパディングは省略されます)。

おすすめ記事