Как автоматически удалить ключевую строку из 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.

Другие вопросы по тегам