
Похоже, что каждый раз, когда я принимаю новый ключ хоста, ssh (я тестировал 8.6p1 и 9.3p2) выполняет следующие шаги:
- Переместить
known_hosts
файл вknown_hosts.old
; - Создать новый
known_hosts
файл; - Скопировать содержимое
known_hosts.old
вknown_hosts
; - Добавьте новую запись в новый
known_hosts
.
Все хорошо и замечательно, за исключением того, что, как и многие люди, я поместил свои dotfiles под контроль версий. Файл known_hosts
— это ссылка на файл в моем репозитории git. В конце концов, если я принял ключ хоста на своем десктопе, то я не хочу рисковать MITM, если подключусь к тому же хосту со своего ноутбука. В конце концов, в этом и есть весь смысл файла known_hosts.
Описанная выше процедура с использованием ssh не работает должным образом: после того, как я принимаю новый хост, он known_hosts.old
становится ссылкой на мой файл с контролируемой версией, который никогда не обновляется.
Как мне сказать, ssh
пожалуйста, прекратить создание known_hosts.old
и просто редактировать known_hosts
напрямую? Мне в любом случае не нужен такой грубый метод резервного копирования - файл уже находится под контролем версий. Я просмотрел TFM, но не нашел такой опции.
решение1
Похоже, это жестко запрограммировано в исходном коде, поэтому один из вариантов — переписать его в соответствии со своими потребностями (не рекомендуется).