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

Управление ключами SSH между экземплярами EC2

У меня, кажется, растет количество экземпляров 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.