Настройка отпечатка хоста на новых экземплярах EC2

TL; DR

Могу ли я сказать AWS EC2 запустить экземпляр из AMI но сохраните ключи хоста - те, что в / etc / ssh , которые были сохранены с AMI - вместо генерации новых ключей и перезаписи тех, которые были сохранены с AMI.

Полный вопрос:

В AWS я настраиваю экземпляр EC2 в качестве узла SFTP. Автоматическая система (управляемая клиентом) будет регулярно доставлять туда файлы. Эти системы будут аутентифицироваться с помощью открытых ключей, предоставленных клиентом.

Перед экземпляром EC2 будет эластичный IP. Этот IP-адрес должен оставаться постоянным «навсегда», поскольку автоматическая система, подключающаяся к нам, полагается на это постоянство.

За кулисами я хотел бы сохранить возможность в любой момент поменять этот экземпляр EC2 на другой, и повторно свяжите существующий IP-адрес с новым сервером. (Некоторые причины для этого могут заключаться в том, чтобы запустить более мощный экземпляр или объединить различные другие серверы в один экземпляр).

Такой вид повторной ассоциации должен быть прозрачным для автоматизированной системы, которая доставляет файлы . Однако я ожидаю, что автоматическая система взбесится, когда я сделаю такое переключение, потому что она обнаружит, что отпечаток пальца хоста изменился. Может, обычно это и хорошо, но я верю, что в этом случае поскольку предполагается, что один хост заменяет другой, уместно сохранить идентичность.

Таким образом, всякий раз, когда я меняю местами экземпляры, как описано, мне нужно скопировать открытый ключ (ключи) исходного хоста на новый хост. На самом деле я наполовину ожидал, что это произойдет автоматически - если я использую один и тот же AMI для запуска обоих хостов, но похоже, что EC2 намеренно назначает новые открытые ключи новому экземпляру, перезаписывая все ключи, сохраненные с AMI.

Мой вопрос - это самый простой способ добиться желаемого поведения. Я знаю, как сделать это вручную, скопировав ключи со старого сервера на новый и перезаписав те, которые были назначены новому серверу. Но мне интересно, есть ли у EC2 автоматический или идиоматический способ сделать это.

0
задан 17 November 2015 в 02:36
1 ответ

Я бы посоветовал оставить системный экземпляр как для административных обязанностей, и вместо этого создать второй экземпляр SSHd, который работает с вашим общим ключом.

Скопируйте общий набор ключей SSH в образ AMI и сохраните их в файл с другим именем (например, / etc / ssh / shared_host_rsa_key).

Затем сделайте копию конфигурации SSH-сервера (/ etc / ssh / sshd_config -> / etc / ssh / sshd_shared_config), измените указанную конфигурацию, чтобы прослушивать новый порт (например, 2222) и использовать для своего общие ключи хоста.

Настройте второй экземпляр sshd так, чтобы он запускался при загрузке, и сообщите своему клиенту, что с этого момента ему нужно будет подключаться к порту 2222.

Вы можете даже пойти дальше и усилить защиту второй конфигурации sshd, чем тот, который вы используете для общего системного администрирования.

1
ответ дан 4 December 2019 в 16:46

Теги

Похожие вопросы