ssh
キーフィンガープリントは、同じコマンドを使用しても(ssh-keygen -lf
異なるホストまたは他のキーに関連して)サーバー認証とクライアント認証で異なるように表示されます。
代表者1:
$ ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub
256 SHA256:3RE3UrGaTAec8H4YnZG7JTlfXpKvl89iexdqzLCyffY root@hostname1 (ED25519)
代表者2:
$ ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub
d0:21:3e:ec:52:ff:19:a9:e7:71:b5:7f:63:23:57:f7
(例:このページ)
代表者3:
AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHVo5+sYnRQxerJjG/DmUzQFso+CGzcnGT/SDa457qQqh6WIquvWOIXIY5gNPZoOByAoriK+WRxgTT39hYFmpXE=
~から
$ ssh-keygen -H -F hostname2
|1|/DmY6Hm8TdZogykndJOUacp2NaM=|uM+t3vLw3KRySPUeXNqBLCxaGtY= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHVo5+sYnRQxerJjG/DmUzQFso+CGzcnGT/SDa457qQqh6WIquvWOIXIY5gNPZoOByAoriK+WRxgTT39hYFmpXE=
.ssh/known_hosts
これはファイルの対応する行ですhostname2
。
それらの違いは何ですか?そして、それらが同等であれば、異なる表現から各表現をどのように取得しますか?
OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n 7 Dec 2017
1と3はUbuntu 18.04を使用して得られたものです。
答え1
旧バージョンssh-keygen
OpenSSHユーティリティはMD5ハッシュのみを表示します。SHA256 ハッシュがデフォルトで表示されます。、次のオプションを使用してMD5ハッシュを選択できます-E
。
user@host:~/.ssh$ ssh-keygen -E md5 -l -f samplekey
2048 MD5:e6:1f:73:0f:14:cb:9a:71:2f:3b:31:b7:3f:58:1c:52 user@host (RSA)
user@host:~/.ssh$ ssh-keygen -E sha256 -l -f samplekey
2048 SHA256:Oyt9H15ZBmITbhljpSiE/BLreo/+j+6lsC3gClGI97U user@host (RSA)
user@host:~/.ssh$ ssh-keygen -B -l -f samplekey
2048 xomiz-lozad-ruzin-lasuz-vibic-fydar-hecoh-mapuv-vytus-futah-maxox user@host (RSA)
また-v
、MD5またはSHA256ハッシュに(ビジュアル)フラグを追加して、英数字ハッシュに加えてASCIIアート比較画像を取得することもできます。
user@host:~/.ssh$ ssh-keygen -E sha256 -l -v -f samplekey
2048 SHA256:Oyt9H15ZBmITbhljpSiE/BLreo/+j+6lsC3gClGI97U user@host (RSA)
+---[RSA 2048]----+
| . .. =.. |
|.. +. + * |
|o o .+. . O . |
| o . .o... o o . |
|. ..E.S o|
| . . . . + |
|. . o..o . . o |
| . o +=.*.. o |
| .. o+BXo..o |
+----[SHA256]-----+
user@host:~/.ssh$
3番目の表現は指紋ではなくBase-64でエンコードされた公開鍵です。公開鍵は、その鍵を受け入れるシステムのファイルまたはsamplekey.pub
ファイルに保存されます。known_hosts
キーはハッシュで決定できません。キーからハッシュを取得するには、ssh-keygen
ユーティリティとデフォルトオプションを使用するか、および/またはオプションを使用して目的の-E
出力-B
スタイル-v
を取得します。
known_hosts
上記の例のように、元の公開鍵ファイルの指紋以外のファイルから鍵の指紋を取得するには、キーの種類とキーを含む文字列を次に直接パイプすることができますssh-keygen
。
$ echo "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHVo5+sYnRQxerJjG/DmUzQFso+CGzcnGT/SDa457qQqh6WIquvWOIXIY5gNPZoOByAoriK+WRxgTT39hYFmpXE=" | ssh-keygen -l -f -
256 SHA256:wOxOBgRQp1qQcnTIjgmE/GB8+3fm8ahyDXuL/2GzgIo no comment (ECDSA)