Как автоматически удалить ключевую строку из known_hosts при закрытии сессии?
Я работаю над автоматизацией всей среды с помощью AWS CloudFormation, и в течение периода тестирования мне приходится очень часто убивать и заново создавать серверы.
Серверы настроены на установку своих IP-адресов из выделенного пула, что означает, что при первом подключении к ним я должен принять проверку ключа хоста (вопрос да / нет), а затем при удалении сервера и повторном создании это, я должен каждый раз удалять ключ сервера из файла known_hosts.
Мой вопрос:
Можно ли автоматически удалить ключ из known_hosts при закрытии сессии? Есть ли такая настройка, которую я пропустил?
3 ответа
Вы можете настроить ssh на использование нескольких файлов для known_hosts, и новые записи будут добавляться только к первому, установив для него значение /dev/null
фактически они не будут спасены:
UserKnownHostsFile /dev/null ~/.ssh/known_hosts
Объедините его с вашим личным фаворитом - спрашивать или автоматически принимать неизвестные ключи:
StrictHostKeyChecking no
Возможно, вы захотите, чтобы эти параметры ограничивались только (конкретными хостами) вашей средой DEV, а не глобальными значениями по умолчанию, поскольку они отнимут довольно большую часть проверки ключа безопасности, предоставляемой в вашем ~/.ssh/config
:
Host *.dev.example.com
IdentityFile ~/.ssh/id_rsa.dev.example.com
UseKeychain yes
User hbruijn-adm
StrictHostKeyChecking ask
UserKnownHostsFile /dev/null ~/.ssh/known_hosts
Правильный способ будет поставить SSHFP
(автоматически) в DNS
, подпишите зону через DNSSEC
и разреши SSH
обращайтесь с остальными, особенно, если вам нужно делать это очень часто и клавиши постоянно меняются.
Вы могли бы сделать:
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -l user host
StrictHostKeyChecking = no, конечно, плохая идея, так как он автоматически принимает все ключи хостов
UserKnownHostsFile=/dev/null не сохранит ничего в ваш обычный файл known_hosts.