Путь обновления для HostKeyAlgorithms
Я хотел бы изменить настройку по умолчанию для 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 на следующем соединении. Скорее я хотел бы иметь способ продолжить с существующим содержанием этого файла. Есть какой-либо способ сделать это? Например, возвращаясь к известному ключу хоста, даже если не используется предпочтительный алгоритм. Или есть автоматический способ заменить все эти записи?
1 ответ
Я отвечал на аналогичный вопрос по Unix, поэтому, чтобы сделать его кратким, в OpenSSH 6.8+ есть вариант UpdateHostKeys
, который говорит вашему клиенту, что он должен забрать все ключи хоста, предлагаемые сервером.
Это должно решить ваши проблемы.