Как настроить доступ по SSH для инстанса Amazon EC2?


87

Мне нужен SSH-доступ к инстансу Amazon EC2 под управлением Ubuntu 10.4. Все, что у меня есть, это имя пользователя и пароль Amazon. Любые идеи?


2
Не забудьте запустить chmod 400 my_private_key.pem.txt после его загрузки.
Питер Камински

Ответы:


159

По сути, вам нужен файл закрытого ключа для входа в ваш EC2 через SSH. Чтобы создать его, выполните следующие действия:

  • Перейдите на https://console.aws.amazon.com/ec2/home и войдите в свою существующую учетную запись Amazon.
  • Щелкните «Пары ключей» на LHS или https://console.aws.amazon.com/ec2/home?region=us-east-1#s=KeyPairs .
    • Вы должны увидеть список КЛЮЧЕЙ, созданных вами (или в процессе создания EC2).
    • Нажмите «Создать пару ключей», если вы ничего не видите или потеряли свой закрытый ключ.
    • Введите уникальное имя и нажмите Enter.
    • Появится панель загрузки, где вы можете сохранить закрытый ключ, сохраните его.
    • Храните его где-нибудь с разрешением файла "0600"
  • Щелкните «Экземпляры» на LHS или https://console.aws.amazon.com/ec2/home?region=us-east-1#s=Instances.
    • Вы должны увидеть список ec2-экземпляров, если вы его не видите, создайте его.
    • Нажмите на машину EC2 и запишите публичный DNS-адрес.
  • Откройте свой терминал (в Linux) и введите следующую команду
    • ssh -i /path/to/private-key root@<ec2-public-dns-address>- в последних выпусках не использовалось имя пользователя root, в зависимости от вашего выбора дистрибутива ec2-userили ubuntuвашего имени пользователя.
    • нажмите Enter
    • Вот и все.

6
Скорее всего, вы не сможете войти в систему как root напрямую через ssh. Вам нужно будет использовать учетную запись без полномочий root, такую ​​как ec2-user, поэтому 'ssh -i / path / to / private-key ec2-user @ hostname
timbo

4
Как только я попытался подключиться, он сказал мне, что я должен использовать ubuntuлогин вместо root. Судя по всему, у меня есть экземпляр сервера ubuntu 12.04.
Василий Ставенко

3
Я успешно создал учетную запись SSH, дальше как загрузить файлы с помощью SCP с созданной учетной записью ??? Когда я пытаюсь загрузить с помощью SCP, появляется сообщение «Permission denied (publickey)».
Ashok KS

5
до сих пор получаю это сообщение "Permission denied (publickey)". Почему это?
Kasun Kariyawasam

2
Вы получаете сообщение «Permission denied (publickey)». может использовать эластичный бобовый стебель. Если это так, вам нужно зайти в EB env Config, Security и выбрать новую пару ключей. Будут созданы новые экземпляры EC2, которые принимают ключ. И имя пользователя есть ec2-userили может ubuntu, но нет root.
Хорхе Орпинель

25
ssh -i /path/to/private-key ubuntu@<ec2-public-dns-address>

просто используйте ubuntuвместо root. Ваша проблема будет решена. Ура!


12

ШАГ 1) Загрузите закрытые ключи, назначенные вашей машине ec2 (которая загружается только один раз при создании. Поэтому рекомендуется где-то зафиксировать)

ШАГ 2) и запускайте следующие команды,

chmod 400 MyKeyPair.pem
ssh -i MyKeyPair.pem ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com

Официальный документ : подключение к вашим экземплярам Linux / Unix с помощью SSH


7

Обратите внимание, что текущий пользователь 13.04 - «ubuntu» ssh -i ./mykey.pem ubuntu@ec2-xxx-xxx-xxx-1.compute-1.amazonaws.com


4

Сначала вам нужно создать пару ключей - сделайте это с помощью консоли EC2. Затем используйте свой закрытый ключ для подключения по SSH к серверу (имя пользователя ec2-user) с помощью клиента SSH по вашему выбору.

Войдя в систему, вы можете выполнить a, sudo su -чтобы получить root, если хотите (примечание: вы не можете войти в систему как root напрямую).


4

Если вы используете MacOS, вы должны создать / отредактировать файл конфигурации SSH (~ / .ssh / config) и поместить что-то вроде:

Host *.amazonaws.com
    User ubuntu
    Port 22
    StrictHostKeyChecking no
    UserKnownHostsFile=/dev/null
    IdentityFile ~/PATH/YOUR_DOWNLOADED_KEY.pem

Затем для подключения к любому из экземпляров EC2:

ssh MYNAME.amazonaws.com

Ничего более!


что , если у меня есть несколько приятель ключ для другого региона , как мы-восток 1.pem и нас-запад 2.pem
Haseeb

1

Чтобы настроить Ubuntu на AWS, выполните следующие действия:

  1. Войдите в Amazon Web Services и выберите EC2 .
  2. Выберите « Запустить экземпляр» и следуйте указаниям мастера, выбрав правильный образ (Ubuntu), тип экземпляра, настроив сеть и подсеть VPC, хранилище и разрешив доступ по SSH в группах безопасности . Затем запустите .
  3. Вероятно, вам в первый раз потребуется настроить пару ключей и назначить ее экземпляру. Вы также можете создать пару ключей в Key Pairs . После создания загрузите файл PEM и храните его в надежном месте.
  4. После запуска экземпляра подождите, пока он не будет инициализирован и запущен .

Чтобы получить доступ к экземпляру через SSH, запустите:

  1. Подключитесь к Linux, указав свой файл PEM, например

    ssh -i "file.pem" ubuntu@x.x.x.x
    

    Убедитесь, что ваш файл PEM имеет разрешение 600 ( chmod 600 file.pem).

Исправление проблем

Если вы используете экземпляр VPC, и ваша группа безопасности верна (с правильными правилами) и она по-прежнему не работает, в разделе VPC проверьте свою подсеть, которая должна быть подключена к вашему VPC (обе используются вашим экземпляром), и настройте новое правило в таблице маршрутов , 0.0.0.0/0в котором указан пункт назначения, а ваш шлюз - цель .

Для получения дополнительных сведений проверьте: Устранение неполадок при подключении к вашему экземпляру

См. Также: Возможные причины тайм-аута при попытке доступа к экземпляру EC2


1

1) Во- первых для ограничения файлов , как показано ниже permissonschmod.pem file

chmod 400 my-key-pair.pem

2) Затем sshс помощью следующих команд прямо из .sshпапки

ssh -i my-key-pair.pem ec2-user@ec2-198-99-90-3.compute-1.amazonaws.com

Примечание: - Для перехода в .sshпапку. Сначала нажмите, Ctrl + Hчтобы отобразить все скрытые файлы и, наконец,cd .ssh


0

Проблема может заключаться в том, что вы не входите в систему как правильный пользователь для вашего дистрибутива ОС. Для некоторых новых AMI имя пользователя может быть не «ubuntu», а «ec2-user». Например, для Amazon Linux я считаю, что пользователь является «пользователем ec2». Эрик Хаммонд приводит примеры здесь: http://alestic.com/2014/01/ec2-ssh-username

Мое предложение, попробуйте:

ssh -i /path/to/file.pem ec2-user@ec2...

ssh -i /path/to/file.pem ubuntu@ec2...

ssh -i /path/to/file.pem root@ec2...

Если у вас неправильный AMI, вы можете просто полностью перезагрузить компьютер, чтобы обеспечить единообразие среди ваших кластеров. Если это ваша проблема, вам, вероятно, понадобится тот же самый дистрибутив ОС, по крайней мере, для ваших Linux-компьютеров.


0

Делать то, что предлагается во всех этих ответах, недостаточно. Против каждого экземпляра вы видите группу безопасности. Когда вы запускаете новый экземпляр, у вас будет значение по умолчанию. Вам нужно отредактировать группу безопасности и добавить в нее порт ssh. Позже вам нужно будет добавить порты 8080, 8443, 80, 443 также, если вы хотите разместить свой веб-сайт.


0

Я принял предложение AWS использовать группы безопасности по умолчанию, которые включают порты All Trafic.

И после многих и многих попыток подключиться к моему новому экземпляру ec2 я просто понял, что мне нужно отредактировать мою используемую группу безопасности и вручную добавить к входящему и исходящему 22-й порт (ssh)!

Надеюсь, это поможет !


0

Первое разрешение на изменение файла pem от

chmod 400 path/to/key_pair.pem

Внутри файла ~ / .ssh / config добавьте следующие строки вверху файла

Host AWS
     Hostname myserver.com
     User myuser
     IdentityFile path/to/.pem/file
     port 22

Имя хоста принимает IP-адрес или ссылку на сервер, пользователь принимает имя пользователя сервера, а файл идентификации - это файл, загруженный из AWS при создании экземпляра. Просто запустите следующую команду в терминале

ssh AWS

и наслаждайся!

Примечание : для перехода в .sshпапку. Сначала нажмите Ctrl + Hв домашней папке, чтобы отобразить все скрытые файлы и, наконец,cd .ssh


0

Убедитесь, что это проверено

  1. закрытый ключ должен иметь разрешение 400

  2. Убедитесь, что порт 22 открыт для экземпляра AWS, к которому вы пытаетесь получить доступ.

  3. ssh -i privatekey.pem ubuntu@XXX.XXX.XXX.XXX // XXX.XXX.XXX.XXX = публичный IP вашего экземпляра
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.