Я работаю над автоматизацией всей среды с помощью AWS CloudFormation, и во время периода тестирования мне нужно очень часто убивать и воссоздавать серверы.
Серверы настроены на установку своих IP-адресов из выделенного пула, что означает, что при первом подключении к ним я должен принять проверку ключа хоста (вопрос да / нет), а затем, когда я удаляю сервер и заново создаю это, мне каждый раз приходится удалять ключ сервера из файла known_hosts.
У меня вопрос:
Можно ли автоматически удалить ключ из known_hosts при закрытии сеанса? есть такая настройка, которую я пропустил?
Вы можете настроить 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.