Я бы хотел изменить настройку по умолчанию для HostKeyAlgorithms
для всех SSH-подключений предпочитать ssh-ed25519
над ecdsa-sha2-nistp256
. Но в настоящее время у меня есть ecdsa-sha2-nistp256
ключи хоста для многих хостов в моем known_hosts
файл (около 70). Когда я подключаюсь к такому хосту с новой настройкой, я получаю такое же сообщение, как если бы кто-то заменил ключ хоста на этом хосте:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ED25519 key sent by the remote host is
SHA256:rqhdlN+Qe/GJeWoj3pyhLLSnzSCz68ZA7ds+mG4iZ7o.
Please contact your system administrator.
Add correct host key in [...]/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in [...]/.ssh/known_hosts:52
ED25519 host key for [...] has changed and you have requested strict checking.
Host key verification failed.
Теперь я бы предпочел не удалять все эти хосты из моего known_hosts
файл и примите «новые» ключи ED25519 при следующем подключении. Скорее я хотел бы иметь способ продолжить существующее содержимое этого файла. Есть какой-либо способ сделать это? Например. путем возврата к известному ключу хоста, даже если не используется предпочтительный алгоритм. Или есть автоматический способ заменить все эти записи?
Я отвечал на аналогичный вопрос по Unix Короче говоря, в OpenSSH 6.8+ есть опция UpdateHostKeys
, который сообщает вашему клиенту, что он должен получить все ключи хоста, предлагаемые сервером.
Это должно решить ваши проблемы.