SSH для AWS Экземпляр без пар ключей
1: Есть ли способ войти в экземпляр AWS без использования пар ключей? Я хочу создать пару сайтов/пользователей в одном экземпляре. Однако я не хочу выдавать пары ключей для входа в систему.
2: Какой самый простой способ настроить хостинг-сайты/пользователи в 1 экземпляре AWS с разными доменами, указывающими на отдельные каталоги?
Ответы
Ответ 1
1) Вы должны иметь возможность изменить конфигурацию ssh (на Ubuntu это обычно находится в /etc/ssh
или /etc/sshd
) и повторно активировать логины для входа в систему.
2) В этом нет ничего особенного AWS - Apache может обрабатывать VHOSTS (виртуальные хосты) из коробки, что позволяет указать, что определенный домен обслуживается из определенного каталога. Я бы Google, чтобы получить дополнительную информацию о специфике.
Ответ 2
Ответ на вопрос 1
Вот что я сделал на Ubuntu EC2
:
A) Войдите в систему как root, используя пары ключей
B) Настройте необходимых пользователей и их пароли с помощью
# sudo adduser USERNAME
# sudo passwd USERNAME
C) Изменить настройку /etc/ssh/sshd_config
Для действительного пользователя, чтобы войти без ключа
PasswordAuthentication yes
Также хотите войти в систему root без ключа
PermitRootLogin yes
D) Перезапустите демон ssh
с помощью
# sudo service ssh restart
просто измените ssh на sshd, если вы используете centOS
Теперь вы можете войти в свой экземпляр ec2
без пар ключей.
Ответ 3
Я пришел сюда через Google, ища ответ на то, как настроить cloud init, чтобы не отключать PasswordAuthentication на AWS. Оба ответа не затрагивают проблему. Без него, если вы создадите AMI, тогда в примере инициализация cloud init снова отключит эту опцию.
Правильный способ сделать это вместо того, чтобы вручную изменять sshd_config, вам нужно исправить параметр для облачного init (инструмент с открытым исходным кодом, используемый для настройки экземпляра во время подготовки. Подробнее читайте на странице https://cloudinit.readthedocs.org/en/latest/). Конфигурационный файл для cloud init находится по адресу: /etc/cloud/cloud.cfg
Этот файл используется для настройки большой конфигурации, используемой облачным init. Прочтите этот файл для примеров элементов, которые вы можете настроить в cloud-init. Сюда входят такие элементы, как имя пользователя по умолчанию для вновь созданного экземпляра)
Чтобы включить или отключить вход в пароли через SSH, вам нужно изменить значение параметра ssh_pwauth. После изменения параметра ssh_pwauth от 0 до 1 в файле /etc/cloud/cloud.cfg испечь AMI. Если вы запустите этот недавно испеченный AMI, после инициализации будет включена аутентификация по паролю.
Вы можете подтвердить это, проверив значение PasswordAuthentication в конфигурации ssh, как указано в других ответах.
Ответ 4
su - root
Перейти к /etc/ssh/sshd_config
vi sshd_config
Аутентификация:
PermitRootLogin yes
Чтобы включить пустые пароли, измените на yes (НЕ РЕКОМЕНДУЕТСЯ)
PermitEmptyPasswords no
Выберите "Нет", чтобы отключить пароли в виде открытого текста.
PasswordAuthentication yes
: Х
Затем перезапустите службу ssh
[email protected]:/etc/ssh# service ssh restart
ssh stop/waiting
ssh start/running, process 10978
Теперь перейдите к файлам sudoers (/etc/sudoers).
Спецификация привилегий пользователя
root ALL=(ALL)NOPASSWD:ALL
yourinstanceuser ALL=(ALL)NOPASSWD:ALL / This is the user by which you are launching instance.
Ответ 5
Недавно AWS добавил функцию под названием Sessions Manager в службу Systems Manager, которая позволяет SSH подключаться к экземпляру без необходимости устанавливать закрытый ключ или открывать порт 22. Я считаю, что аутентификация выполняется с помощью IAM и, возможно, MFA.
Вы можете узнать больше об этом здесь:
https://aws.amazon.com/blogs/aws/new-session-manager/
Ответ 6
AWS добавил новую функцию для подключения к экземпляру без открытого порта - AWS SSM Session Manager.
https://aws.amazon.com/blogs/aws/new-session-manager/
Я создал аккуратный скрипт SSH ProxyCommand, который временно добавляет ваш открытый ключ ssh к целевому экземпляру во время соединения с целевым экземпляром. Приятно то, что вы подключаетесь без необходимости добавлять порт ssh (22) в свои группы безопасности, потому что соединение ssh туннелируется через менеджер сессий ssm.
AWS SSM SSH ProxyComand → https://gist.github.com/qoomon/fcf2c85194c55aee34b78ddcaa9e83a1