Назад | Перейти на главную страницу

Как автоматически удалить ключевую строку из known_hosts при закрытии сеанса?

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