Я работаю над автоматизацией всей среды с помощью 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.