защитить файл known_host от записи - хорошая или плохая идея?

259
maihabunash

Я хочу защитить файл known_host от записи. Поэтому я хочу выполнить следующие шаги на моем сервере Red-Hat Linux.

Cp /dev/null /root/.ssh/known_hosts chattr +i /root/.ssh/known_hosts 

Я хочу, чтобы, потому что я хочу предотвратить неудачный вход в систему на любой целевой машине, и потому, что иногда мы получаем предупреждение - Ошибка идентификации удаленного хоста и ошибка входа в систему

Но я не уверен, что мое решение (защита писем на known_host) является хорошей идеей и что негативно влияет на систему Linux?

Или, может быть, это решение является хорошим решением для сохранения файла known_host пустым?

Что думают здесь участники?

1

1 ответ на вопрос

1
Hastur

ИМХО Это не очень хорошая идея (см. Ниже).

Следующая команда удалит нарушающий ключ вашего хоста из known_hosts

 ssh-keygen -R <host> 

например ssh-keygen -R my_old_client

Почему это не очень хорошая идея, можно поспорить man ssh(поиск вниз, вы можете прочитать):

Кроме того, сервер должен иметь возможность проверять ключ хоста клиента (см. Описание / etc / ssh / ssh_known_hosts и ~ / .ssh / known_hosts ниже), чтобы разрешить вход в систему . Этот метод аутентификации закрывает дыры в безопасности из-за подмены IP-адресов, подмены DNS и подмены маршрутизации. [Примечание для администратора: /etc/hosts.equiv, ~ / .rhosts и протокол rlogin / rsh в целом небезопасны и должны быть отключены, если требуется безопасность.]


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

Всегда man sshо том, как это работает:

ssh автоматически поддерживает и проверяет базу данных, содержащую идентификацию для всех хостов, с которыми она когда-либо использовалась.
Ключи хоста хранятся в ~ / .ssh / known_hosts в домашнем каталоге пользователя. Кроме того, файл /etc/ssh/ssh_known_hostsавтоматически проверяется на наличие известных хостов. Любые новые хосты автоматически добавляются в файл пользователя. Если идентификация хоста когда-либо изменяется, ssh предупреждает об этом и отключает аутентификацию по паролю, чтобы предотвратить подделку сервера или атаки «человек посередине», которые в противном случае могли бы использоваться для обхода шифрования.

Параметр StrictHostKeyChecking можно использовать для управления входами в систему на компьютерах, ключ хоста которых неизвестен или изменился.

от человека сс я не вижу, они написали знакомый_хост maihabunash 9 лет назад 0
лучше сделать StrictHostKeyChecking нет в конфигурации SSH? maihabunash 9 лет назад 0
Люди обычно не переустанавливают `ssh`, чистя ключ так часто. Если вы однажды исправите проблему, когда она произойдет, вы не столкнетесь с этой проблемой снова (по крайней мере, в течение длительного времени) и не будете ставить под угрозу безопасность. Обновленный ответ Hastur 9 лет назад 0
StrictHostKeyChecking no и UserKnownHostsFile / dev / null сделают свою работу, как вы думаете? с этим conf файл останется пустым maihabunash 9 лет назад 0

Похожие вопросы