Итак, учитывая следующие предположения:
1) я хочу в первый раз подключиться к удаленному хосту
2) ssh-keyscan показывает это:
pwaugh$ ssh-keyscan -t ecdsa pi
# pi:22 SSH-2.0-OpenSSH_7.4p1 Raspbian-10+deb9u4 pi ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEQVybySS0o5UWGHC0Qq1/pkDWZ0gK4nxUDdQEGdxWo3Dl5XMfMr+m6l5GDo7eID23j3N5Gwh7pGyea3WQbRWAk= pwaugh$
3) ssh pi @ pi дает мне это:
pwaugh$ ssh pi@pi
The authenticity of host 'pi (192.168.1.12)' can't be established.
ECDSA key fingerprint is SHA256:eMaAlpPMA2/24ajrpHuiL7mCFCJycZNfuNfyB3cyx+U.
Are you sure you want to continue connecting (yes/no)? no
Host key verification failed.
pwaugh$
ВОПРОС № 1: Как я могу подтвердить, что хэш SHA256 ключа, возвращенного с сервера с помощью ssh, является эквивалентом полного ключа, возвращаемого ssh-keyscan?
(кроме терминала $ sudo ssh-keygen -l -f /etc /ssh /ssh_host_ecdsa_key)
Я предполагаю, что если бы это было возможно, это оставило бы меня открытым для атаки «человек посередине», если я в итоге не проверил это на терминале, верно?
Я также предполагаю, что лучшим методом было бы просто собрать ключи, добавить их в known_hosts, а затем позволить ssh проверить их для меня в любом случае. Но просто любопытно.
ВОПРОС № 2: При первом подключении и получении подтверждающего сообщения / ключа хоста по умолчанию используется ключ ecdsa. Это менее безопасно, чем использование ключа ed25519? Могу ли я заставить его проверить этот ключ? (Вероятно, придется удалить другие ключи хоста, я предполагаю)
Спасибо за любые мысли. Я просмотрел файлы man и даже книгу по ssh, и просто неясен по этому поводу.
Патрик