当连接到一个新的/未知的服务器(使用最近的 OpenSSH)时,例如:
ssh example.com
Run Code Online (Sandbox Code Playgroud)
您将获得如下指纹:
The authenticity of host 'example.org (192.0.2.42)' can't be established.
RSA key fingerprint is SHA256:7KMZvJiITZ+HbOyqjNPV5AeC5As2GSZES5baxy1NIe4.
Are you sure you want to continue connecting (yes/no)?
Run Code Online (Sandbox Code Playgroud)
但是,通常以这种形式为服务器提供指纹:
f6:fc:1c:03:17:5f:67:4f:1f:0b:50:5a:9f:f9:30:e5
Run Code Online (Sandbox Code Playgroud)
如何检查真实性(不打扰服务器管理员提供 SHA256 指纹)?
Jon*_*yJD 168
以前,指纹是作为十六进制 md5 哈希值给出的。从OpenSSH 6.8开始,指纹现在显示为 base64 SHA256(默认情况下)。你不能直接比较这些。
他们还添加了一个新的配置选项FingerprintHash。你可以放
FingerprintHash md5
Run Code Online (Sandbox Code Playgroud)
在您~/.ssh/config恢复到旧的(安全性较低)默认值或仅将此选项用于一次性使用:
ssh -o FingerprintHash=md5 example.org
Run Code Online (Sandbox Code Playgroud)
这将使指纹为
MD5:f6:fc:1c:03:17:5f:67:4f:1f:0b:50:5a:9f:f9:30:e5
Run Code Online (Sandbox Code Playgroud)
希望服务器管理员在不久的将来提供这两种类型的指纹。
编辑:
正如Arch Linux 论坛中给出的,还有第三种选择:
Host example.org
FingerprintHash md5
Run Code Online (Sandbox Code Playgroud)
编辑:
您可以生成OpenSSH Cookbook上给出的任意密钥的哈希值:
找回钥匙:
ssh-keyscan example.org > key.pub/etc/ssh生成哈希:
key.pub运行ssh-keyscan -t rsa example.org > key.pubssh-keygen -l -f key.pub (默认哈希,取决于 OpenSSH 版本)ssh-keygen -l -f key.pub -E md5 (当前 OpenSSH 上的 md5)awk '{print $2}' ssh_host_rsa_key.pub | base64 -d | sha256sum -b | awk '{print $1}' | xxd -r -p | base64 (旧 OpenSSH 上的 sha256)awk '{print $3}'对于较新版本的 ssh-keyscan,您可能需要以 开头,因为格式已更改)Kep*_*epi 29
刚刚创建了一个小的 bash 脚本,它将打印带有指纹的表,用于服务器上允许的所有密钥密码(根据/etc/ssh/sshd_config)SSH-256和MD5算法。这是一个示例输出:
+---------+---------+-----------------------------------------------------+
| Cipher | Algo | Fingerprint |
+---------+---------+-----------------------------------------------------+
| RSA | MD5 | MD5:15:66:80:fd:79:d8:c0:92:e8:39:4a:bc:4e:c4:00:15 |
| RSA | SHA-256 | SHA256:G+rKuLGk+8Z1oxUV3cox0baNsH0qGQWm/saWPr4qZMM |
+---------+---------+-----------------------------------------------------+
| ECDSA | MD5 | MD5:f5:90:5c:03:2e:38:1b:c9:86:bd:86:47:5d:22:79:17 |
| ECDSA | SHA-256 | SHA256:GGmuOzsG4EGeRV9KD1WK7tRf3nIc40k/5jRgbTZDpTo |
+---------+---------+-----------------------------------------------------+
| ED25519 | MD5 | MD5:d1:5a:04:56:37:f4:75:19:22:e6:e5:d7:41:fd:79:fa |
| ED25519 | SHA-256 | SHA256:QVdqYeVzvsP4n5yjuN3D2fu8hDhskOxQCQAV5f9QK7w |
+---------+---------+-----------------------------------------------------+
+---[RSA 2048]----+ +---[RSA 2048]----+ +---[ECDSA 256]---+ +---[ECDSA 256]---+ +--[ED25519 256]--+ +--[ED25519 256]--+
|.oE. +.++ | | .o+= | | ... Eoo | | .. o.o.. .| | ooo++o.+*| | .o++o. +oo |
| . o +oo. | | .o= = | | +.=.=.o . | | . .o *.. ..| | . oo.+o.o=| | ...o.+ |
| + . . o.= | | ... X + | | . X.o.* | |o o ++o .. | | . o. ...+| | ..oo.o . |
| = + .+ o | | .. = + o | | + = o o | |.+ .o.o .o | | + ..o| | =oo .+ |
| o o .S . | | . .S o o | | . = S . | |... oo.S .E* * | | S ..| | .SO . . |
| + | | . E. =o.. | | o | | .. o. . o *.O o| | . | | o B .o.. |
| o | | .o. *.o. *. | | | | ... . o * * | | . | | E *..=.o|
| . | | oo=... +. | | | | +. o + o| | E| | . +.+B+|
| | |o+=.o....o+o | | | | .o+ . | | | | o.ooOX|
+------[MD5]------+ +----[SHA256]-----+ +------[MD5]------+ +----[SHA256]-----+ +------[MD5]------+ +----[SHA256]-----+
Run Code Online (Sandbox Code Playgroud)
脚本也将在SSH版本低于6.8(-E md5添加选项之前)的服务器上运行。
编辑:更新版本的 SSH 更新版本,现在使用 ASCII 图像支持切换默认密码。
+---------+---------+-----------------------------------------------------+
| Cipher | Algo | Fingerprint |
+---------+---------+-----------------------------------------------------+
| RSA | MD5 | MD5:15:66:80:fd:79:d8:c0:92:e8:39:4a:bc:4e:c4:00:15 |
| RSA | SHA-256 | SHA256:G+rKuLGk+8Z1oxUV3cox0baNsH0qGQWm/saWPr4qZMM |
+---------+---------+-----------------------------------------------------+
| ECDSA | MD5 | MD5:f5:90:5c:03:2e:38:1b:c9:86:bd:86:47:5d:22:79:17 |
| ECDSA | SHA-256 | SHA256:GGmuOzsG4EGeRV9KD1WK7tRf3nIc40k/5jRgbTZDpTo |
+---------+---------+-----------------------------------------------------+
| ED25519 | MD5 | MD5:d1:5a:04:56:37:f4:75:19:22:e6:e5:d7:41:fd:79:fa |
| ED25519 | SHA-256 | SHA256:QVdqYeVzvsP4n5yjuN3D2fu8hDhskOxQCQAV5f9QK7w |
+---------+---------+-----------------------------------------------------+
+---[RSA 2048]----+ +---[RSA 2048]----+ +---[ECDSA 256]---+ +---[ECDSA 256]---+ +--[ED25519 256]--+ +--[ED25519 256]--+
|.oE. +.++ | | .o+= | | ... Eoo | | .. o.o.. .| | ooo++o.+*| | .o++o. +oo |
| . o +oo. | | .o= = | | +.=.=.o . | | . .o *.. ..| | . oo.+o.o=| | ...o.+ |
| + . . o.= | | ... X + | | . X.o.* | |o o ++o .. | | . o. ...+| | ..oo.o . |
| = + .+ o | | .. = + o | | + = o o | |.+ .o.o .o | | + ..o| | =oo .+ |
| o o .S . | | . .S o o | | . = S . | |... oo.S .E* * | | S ..| | .SO . . |
| + | | . E. =o.. | | o | | .. o. . o *.O o| | . | | o B .o.. |
| o | | .o. *.o. *. | | | | ... . o * * | | . | | E *..=.o|
| . | | oo=... +. | | | | +. o + o| | E| | . +.+B+|
| | |o+=.o....o+o | | | | .o+ . | | | | o.ooOX|
+------[MD5]------+ +----[SHA256]-----+ +------[MD5]------+ +----[SHA256]-----+ +------[MD5]------+ +----[SHA256]-----+
Run Code Online (Sandbox Code Playgroud)
这只是使用来自JonnyJD's answer 的信息的漂亮打印。谢谢。
小智 8
事实证明 ssh-keygen(在 6.6 版之后的某个时间;大概是 6.8 版)有一个-E md5选项,可以将指纹打印为 md5 指纹。因此,如果您可以独立抓取服务器的公钥文件,您就可以将其输入ssh-keygen -E md5 -l -f ssh_host_rsa_key.pub并获取您熟悉的指纹。
| 归档时间: |
|
| 查看次数: |
115008 次 |
| 最近记录: |