SSH в экземпляр AWS без пар ключей

1. Есть ли способ войти в экземпляр AWS без использования пар ключей? Я хочу настроить пару сайтов / пользователей на одном экземпляре. Однако я не хочу выдавать клиентам пары ключей для входа в систему.

2. Какой самый простой способ настроить хостинг сайтов / пользователей в одном экземпляре AWS с разными доменами, указывающими на разные каталоги?


person Andres    schedule 25.05.2011    source источник
comment
Теперь это возможно в aws: aws.amazon.com/blogs/compute/   -  person BMW    schedule 15.04.2020
comment
@BMW Кроме того, существует официальная оболочка python pip install ec2instanceconnectcli, которая позволяет делать mssh <instance id>   -  person Aleksandr Dubinsky    schedule 30.03.2021


Ответы (7)


1) У вас должна быть возможность изменить конфигурацию ssh (в Ubuntu это обычно /etc/ssh или /etc/sshd) и повторно включить вход по паролю.

2) В этом нет ничего особенного для AWS - Apache может обрабатывать VHOSTS (виртуальные хосты) из коробки, что позволяет указать, что определенный домен обслуживается из определенного каталога. Я бы погуглил, чтобы получить дополнительную информацию о деталях.

person Chris Bunch    schedule 25.05.2011
comment
Можете ли вы по-прежнему использовать HTTPS в этих условиях (1 ip и несколько vhosts)? Вы знаете документы, объясняющие настройку openSSL для всех доменов? - person Andres; 25.05.2011
comment
Я обратился к этому в своем вопросе, но, поскольку это общепринятый ответ, я хочу уточнить. В этом ответе есть специальный компонент AWS. Cloud Init, который будет запущен как часть загрузки, перезапишет конфигурацию, которую вы установили с помощью этого метода. Это то, к чему мой ответ. - person ali-hussain; 19.04.2016

Ответ на вопрос 1

Вот что я сделал на Ubuntu EC2:

A) Войдите в систему как root, используя пары ключей

Б) Настройте необходимых пользователей и их пароли с помощью

# 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 без пар ключей.

person illy    schedule 08.10.2011
comment
Спасибо, и в Amazon AMI последняя команда должна быть: sudo service sshd restart - person Suman; 12.04.2012
comment
Спасибо. Но это все еще не решает проблему с учетной записью по умолчанию ec2-user. - person 夏期劇場; 29.01.2014
comment
Привет, @ シ リ ウ ス, это также работает для пользователя ec2. Вам просто нужно установить для него пароль, а затем приступить к этому ответу. - person Yuchen; 10.02.2014
comment
Я рекомендую не использовать учетную запись по умолчанию, такую ​​как ec2-user или ubuntu. Сделайте другие учетные записи для входа в систему. - person MKatleast3; 02.07.2014
comment
на Ubuntu EC2 у меня работает sudo service ssh restart. - person Ryan; 12.12.2014
comment
Спасибо, помощь полная, но также добавьте в конфигурацию #Set PermitRootLogin yes - person Viral Patel; 02.04.2017

Я пришел сюда через Google в поисках ответа на вопрос, как настроить облачную инициализацию, чтобы не отключать аутентификацию пароля на AWS. Оба ответа не решают проблему. Без него, если вы создаете AMI, то при инициализации экземпляра cloud init снова отключит эту опцию.

Правильный способ сделать это - вместо того, чтобы вручную изменять sshd_config, вам нужно исправить настройку для облачной инициализации (инструмент с открытым исходным кодом, используемый для настройки экземпляра во время подготовки. Подробнее на: https://cloudinit.readthedocs.org/en/latest/). Файл конфигурации для облачной инициализации находится по адресу: /etc/cloud/cloud.cfg.

Этот файл используется для настройки многих конфигураций, используемых облачной инициализацией. Прочтите этот файл, чтобы увидеть примеры элементов, которые вы можете настроить в cloud-init. Сюда входят такие элементы, как имя пользователя по умолчанию для вновь созданного экземпляра)

Чтобы включить или отключить вход по паролю через SSH, вам необходимо изменить значение параметра ssh_pwauth. После изменения параметра ssh_pwauth с 0 на 1 в файле /etc/cloud/cloud.cfg запекаем AMI. Если вы запустите этот только что созданный AMI, после инициализации будет включена аутентификация по паролю.

Вы можете подтвердить это, проверив значение PasswordAuthentication в конфигурации ssh, как указано в других ответах.

person ali-hussain    schedule 22.01.2015
comment
Я подозреваю, что этот ответ намекает на правильное решение, но он написан так плохо, что я не могу его понять. - person Jim Maguire; 13.11.2015
comment
Я даже не знал, что этот файл существует. Отличный ответ! - person Richard_G; 17.11.2015
comment
@JimMaguire Я полагаю, что предполагал много справочной информации. Я добавил еще несколько пояснений. Это помогает? У вас есть какие-то особые предложения, которые вы хотите, чтобы я учел? - person ali-hussain; 19.11.2015
comment
Если вы не нашли PasswordAuthentication в /etc/cloud/cloud.cfg, найдите ssh_pwauth в /etc/cloud/cloud.cfg.d/00_defaults.cfg и измените его значение с false на true. - person Russell G; 07.01.2017

Недавно AWS добавила в службу System Manager функцию Sessions Manager, которая позволяет подключаться к экземпляру по SSH без необходимости настраивать закрытый ключ или открывать порт 22. Я считаю, что аутентификация выполняется с помощью IAM и, возможно, MFA.

Вы можете узнать об этом подробнее здесь:

https://aws.amazon.com/blogs/aws/new-session-manager/

person Parag    schedule 16.08.2019

su - root

Перейти к /etc/ssh/sshd_config

vi sshd_config

Аутентификация:

PermitRootLogin yes

Чтобы включить пустые пароли, измените на да (НЕ РЕКОМЕНДУЕТСЯ)

PermitEmptyPasswords no

Измените на no, чтобы отключить туннелированные пароли в открытом виде.

PasswordAuthentication yes

:x!

Затем перезапустите службу ssh

root@cloudera2:/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.
person Moin    schedule 11.12.2017

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

person qoomon    schedule 25.08.2019

Amazon добавил _1 _ .

Существует официальный скрипт для автоматизации процесса https://pypi.org/project/ec2instanceconnectcli/

pip install ec2instanceconnectcli

Тогда просто

mssh <instance id>

person Aleksandr Dubinsky    schedule 30.03.2021