Почему ключи хостов SSH различаются при подключении, если host_keys одинаковы?

Почему ключи хостов SSH различаются при подключении, если host_keys одинаковы?

Есть 3 машины: A (откуда я подключаюсь к B и C), B и C.
У B и C одинаковые ключи хоста SSHD (они были скопированы, поэтому они на 100% совпадают, SSHD также был перезапущен, файл sshd_config идентичный).

На C файл known_hosts выглядит так:

C:~/.ssh # grep B *
C:~/.ssh # grep A *
known_hosts:ssh-rsa xxxx...xxxx
C:~/.ssh # 

Когда мы пытаемся подключиться из C в A, то "A" предлагает свой ключ хостов RSA.
Когда мы пытаемся подключиться из C в B, то "B" предлагает свой ключ хостов ECDSA.

Вопрос:Почему? Разве не было бы логично, если бы сервер "A" и сервер "B" предлагали оба ex.: их ключи хостов RSA SSHD?

решение1

Ключи ECDH/ECDSA предпочтительны при первом изучении ключа хоста. Поскольку хост C уже знает ключ RSA хоста A, он продолжает его использовать. Но поскольку хост C ничего не знает о ключах хоста B, используется ECDH/ECDSA.

(Я сослался назаметки о выпуске для 5.7, когда был введен ECDH/ECDSA).

Вопросы, которые я получил: Нужны ли оба ключа? Ну да. Не все инсталляции SSH поддерживают ECDSA, поэтому вам нужен RSA. (Например, putty пока не поддерживает ECDSA) Что произойдет, если у меня есть только ECDSA? Зависит от того, кто пытается с вами связаться. Если они поддерживают ECDSA, то все работает как и ожидалось. Если нет, то вы получите какой-то сбой. Какая из них лучше? Лично я не знаю. ECDSA требует меньше лошадиных сил, поэтому я обнаружил, что он более быстрый на старом оборудовании. И поскольку OpenSSH предпочитает его RSA, я предполагаю, что разработчики считают ECDSA лучше.

решение2

Имеют ли серверы, к которым вы пытаетесь подключиться, одинаковые /etc/ssh/sshd_configверсии OpenSSH (и OpenSSL) (части об идентичных конфигурациях и о том, куда вы подключаетесь, кажутся немного противоречивыми)? ECDH/ECDSA были введены в OpenSSH 5.7p1, поэтому если один сервер старше, он просто проигнорирует файл ключа.

Связанный контент