SSH. Как проверить отпечаток ключа ECDSA, отправленного удалённым OpenSSH сервером?

При первом подключении к серверу по ssh, сервер отправляет клиенту отпечаток ключа ECDSA с сообщением, что подлинность хоста не может быть установлена.

# ssh root@1.2.3.4 -p 22
The authenticity of host '[1.2.3.4]:22 ([1.2.3.4]:22)' can't be established.
ECDSA key fingerprint is SHA256:tRJB8Yq67I8a6QkDZQ40vxT77nXyHAXZCAQb7gYJkW0.
Are you sure you want to continue connecting (yes/no)?

Как же проверить этот отпечаток?

Идём на сервер и выполняем следующую команду, которая и покажет нужный нам отпечаток. По умолчанию выводится SHA256 отпечаток:

# ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key.pub
256 SHA256:tRJB8Yq67I8a6QkDZQ40vxT77nXyHAXZCAQb7gYJkW0 root@vm4762 (ECDSA)

Как видно, значение tRJB8Yq67I8a6QkDZQ40vxT77nXyHAXZCAQb7gYJkW0 выдаваемое ssh клиентом совпало с отпечатком публичного ключа на сервере.

или md5 вариант:

# ssh-keygen -l -E md5 -f /etc/ssh/ssh_host_ecdsa_key.pub
256 MD5:2d:10:88:d5:32:90:70:a3:ff:2e:ee:c4:3c:ec:dc:be root@vm4762 (ECDSA)

Если значение сходится с тем, что выдалось на клиенте при подключении по ssh, значит всё в порядке.

Чтобы посмотреть текущий отпечаток какого либо OpenSSH сервера, то выполняем:

$ ssh-keyscan -p 22 1.2.3.4 | ssh-keygen -lf -
# 1.2.3.4:22 SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.5
# 1.2.3.4:22 SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.5
# 1.2.3.4:22 SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.5
3072 SHA256:goTyKFcaXg+mFR64G8m5ZjTCq2ThyYeepIL0XnxEn+A [1.2.3.4]:22 (RSA)
256 SHA256:tRJB8Yq67I8a6QkDZQ40vxT77nXyHAXZCAQb7gYJkW0 [1.2.3.4]:22 (ECDSA)
256 SHA256:5AMXemvINgFueebudf9Yx74cnEMFHq61hUQfT71/UNw [1.2.3.4]:22 (ED25519)

где 1.2.3.4 — это ip или хост удалённого сервера
22 — порт.
Если порт используется стандартный 22, тогда параметр -p 22 можно опустить.

или md5 вариант:

$ ssh-keyscan -p 22 1.2.3.4 | ssh-keygen -E md5 -lf -
# 1.2.3.4:22 SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.5
# 1.2.3.4:22 SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.5
# 1.2.3.4:22 SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.5
256 MD5:2d:10:88:d5:32:90:70:a3:ff:2e:ee:c4:3c:ec:dc:be [1.2.3.4]:22 (ECDSA)
3072 MD5:c9:70:37:d4:c0:c9:50:09:ae:19:c8:6a:2e:8f:80:4b [1.2.3.4]:22 (RSA)
256 MD5:a2:69:49:9e:98:10:ab:dc:69:f3:29:01:55:b9:5c:30 [1.2.3.4]:22 (ED25519)

Если требуется посмотреть только открытую часть публичного серверного ключа, тогда так:

$ ssh-keyscan -p 22 1.2.3.4
# 1.2.3.4:22 SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.5
[1.2.3.4]:22 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL+oWvgCYWnxSqTwCYX78cvkggZ1X6u3alKZcHuKFGih
# 1.2.3.4:22 SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.5
[1.2.3.4]:22 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDMSpDJ2qIK12qGtOUIp9nI0rXcs4U6CNp63w96mxafqJxX6dHEjqHmJR07JZEv58WLi7renYSVwoJL6L+iFJyxlR1ucgu4QVWHplsN0GLt2JdlA4FffMS2gIigl++4f/MZEvB9Y3ZuIarzB9eeLJ3s7bTmRKpN2NJCj00geskxeP+08dU3K8WkVtKt2Seyw2amLj/bzMw5fr2RgFQyg7HBhSVyyylnJ2MJ/jt3a0EmVy7s7IJw5dVuxAvWgtIiX+xhuYcYjPrim2cuIoyWton7p/Yk5wtqSjj+9Ojc+un5X17ZsgzLxNykqmj7FqoejCtNkebXA+dbc5XxLag3UuIcb3jWSEQY+GDpFCvVZFiBZh6eM9IDrRRpupBe/Xk1w/Bg/cztGpRSXTOG0vlOqIA5PITTTuXEbQ7jNBzz+EFOGnS2Lvf6uCqe0+t48ZrGj84U0cqcSiwWEvbrUNUvtnQrMSvUpy9chsDi+kK0FuStf+wwRbP4PNCfqEWc9MA4rA0=
# 1.2.3.4:22 SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.5
[1.2.3.4]:22 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBGYo1lG0wzzHVVwNHVOUcTJGN/HO/8b1cClGMUdBUp0mnYjejq1kys8BEqsapZOm5j5ci5wxQTtVSGOSokj1qO8=