У меня, кажется, растет количество экземпляров EC2, и все работает нормально и здорово. Однако одна проблема, с которой я столкнулся, - это выяснить стратегию SSH-соединения между машинами. Копирование моего закрытого ключа в каждый экземпляр контрпродуктивно, и оно отлично работает, когда мне нужно подключиться по SSH с моей личной машины, но не тогда, когда мне нужно использовать SSH с машины на машину.
Какие есть достойные стратегии для решения этой проблемы? Как вы используете SSH-соединение между кластером инстансов EC2?
Ты используешь ssh-agent
:
ssh-agent ssh-add ssh -A remote-machine
Для облегчения использования добавьте
Host remote-machine ForwardAgent yes
на ваш ~/.ssh/config
Хорошо, учитывая, что все мои экземпляры EC2 запущены с использованием одного и того же ключа SSH для root, мне нужно загрузить только один ключ в агент SSH. Тем не менее, я обычно не использую SSH как root в качестве вопроса или политики, поэтому мои экземпляры EC2 запускаются и подключаются к серверу Puppet, который затем настраивает их, включая установку любых приложений вместе с настройкой учетных записей пользователей и их соответствующих ключей идентификации SSH и установление разрешений sudo. Затем я просто загружаю свою личную учетную запись SSH в ssh-agent на моем ноутбуке с USB-накопителя, зашифрованного LUKS. Корневой ключ идентификации SSH, введенный во время инициализации инстанса EC2, остается там в качестве резервной копии.
Другим преимуществом использования Puppet является то, что я могу использовать марионеточный сервер в качестве окна перехода в любой из экземпляров и фактически заставить Puppet автоматически обновлять системные файлы ssh_known_hosts и / etc / hosts.