Ssh
密鑰指紋的幾種表示
在
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
。它們之間有什麼區別?而且,如果它們是等價的,如何從其他表示中獲取每個表示?
表示 1 和 3 是
OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n 7 Dec 2017
在 Ubuntu 18.04 上獲得的。
OpenSSH的舊版本
ssh-keygen
實用程序僅顯示 MD5 雜湊值;該實用程序現在預設顯示 SHA256 雜湊,儘管您仍然可以使用以下-E
選項選擇 MD5 雜湊: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-art 比較圖像: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$
您的第三個表示不是指紋,而是基於 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)