Мы часто удаляем и воссоздаем машины на Google Compute Engine, чтобы разбить и остановить тестовые среды, выполнить тесты на отказоустойчивость и т. д.
Проблема в том, что GCE всегда заново создает ключи SSH-сервера на каждом новом экземпляре, созданном из образа или снимка.
Какой простой способ получить статические ключи SSH или ключи SSH, которые будут легко приниматься на всех машинах при выполнении операций scp или ssh?
решение1
Если вы используете свои машины только для тестирования ( ssh
конечно, для тестирования чего-то еще, кроме себя) и безопасность не вызывает проблем (закрытая среда), вы можете сделать частью своего установочного скрипта/кикстарта/первой загрузки извлечение ключей откуда-то и не генерировать свои собственные (способы, которые запускают генерацию ключей, различаются в разных дистрибутивах, но вы узнаете — RHEL создает их, только если они отсутствуют при первом запуске службы).
решение2
Если у вас уже есть файл закрытого ключа google_compute_engine
в вашем /home/<username>/.ssh/
каталоге, то использование gcloud compute ssh <target instance>
команды не должно генерировать новый ключ. Однако, если вы будете использовать другое имя пользователя или попытаетесь подключиться по SSH с недавно созданного экземпляра виртуальной машины, команда gcloud compute ssh
сгенерирует новый закрытый/открытый ключ для соответствия требованиям безопасности.
Вы можете скопировать закрытый ключ на определенную машину или локальный компьютер и всегда использовать SSH оттуда. Это исключит генерацию новых ключей.
Если речь идет о ключе хоста SSH, то вы можете использовать -o StrictHostKeyChecking=no
опцию в вашей команде ssh (OpenSSH), чтобы обойти проверку подлинности ключа хоста.