facebook

Как удалить устаревшие ключи SSH, управление ключами

Инструкция, как удалить устаревшие ключи SSH из файла know_hosts при смене ключа на сервере.

Как удалить устаревшие ключи SSH

Первый раз, когда вы заходите на сервер, ssh вас спрашивает, доверяете ли вы ключу. Если отвечаете нет, соединение закрывается. Если да — ssh клиент записывает ключ сервера в файл ~/.ssh/known_hosts. Данный ключ определяет уникальность системы, к которой вы подключаетесь. Узнать, где какой ключ нельзя (ибо несекьюрно).

Если ключ сервера поменялся (например, сервер переустановили), ssh выводит предупреждение о не соответствии ключа. Обратите внимание, если сервер не трогали, а ssh выводит ошибку, значит вы не к тому серверу подключаетесь (например, в сети появился ещё один компьютер с тем же IP, особо этим страдают различные локальные сети с 192.168.1.1, которых в мире несколько миллионов).

В случае если ключ поменялся «легально» (переустановили систему), необходимо удалить запись о хосте в файле known_hosts.

Удалить известный ключ сервера можно командой ssh-keygen -R server. При этом нужно удалить ещё и ключ IP (они хранятся раздельно): ssh-keygen -R 127.0.0.1.

Ключ сервера хранится
в /etc/ssh/ssh_host_rsa_key и /etc/ssh/ssh_host_rsa_key.pub. Их можно:
а) скопировать со старого сервера на новый.
б) сгенерировать с помощью ssh-keygen. Пароля при этом задавать не надо (т.е. пустой). Ключ с паролем ssh-сервер использовать не сможет.

Заметим, если вы сервера клонируете (например, в виртуалках), то ssh-ключи сервера нужно обязательно перегенерировать.

Старые ключи из know_hosts при этом лучше убрать, иначе ssh будет ругаться на duplicate key.

 



banner