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

76

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

  • 1
    Не забудьте запустить chmod 400 my_private_key.pem.txt после загрузки.
Теги:
amazon-ec2
ubuntu-10.04

13 ответов

150
Лучший ответ

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

  • Перейдите https://console.aws.amazon.com/ec2/home и войдите в свою существующую учетную запись Amazon.
  • Нажмите "Key Pairs" на 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
    • Что это.
  • 0
    я получаю Connection refused от убунту. с помощью putty на win7 все в порядке. где может быть ошибка?
  • 0
    @tq убедитесь, что ваш IP-адрес не находится под брандмауэром? также опубликуйте оператор отладки вашего SSH, запустите эту команду ssh -v [email protected]
Показать ещё 11 комментариев
19
ssh -i /path/to/private-key ubuntu@<ec2-public-dns-address>

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

8

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

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

chmod 400 MyKeyPair.pem
ssh -i MyKeyPair.pem [email protected]

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

7

Обратите внимание, что текущий пользователь для 13.04 - это "ubuntu" ssh -i./mykey.pem [email protected]

4

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

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

3

Если вы используете 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

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

  • 0
    Что делать, если у меня есть несколько ключей для разных регионов, таких как us-east-1.pem и us-west-2.pem
1

1) Сначала chmod .pem file для ограничения разрешений файла, как показано ниже

chmod 400 my-key-pair.pem

2) Тогда ssh со следующими командами непосредственно из папки .ssh

ssh -i my-key-pair.pem [email protected]

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

1

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

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

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

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

    ssh -i "file.pem" [email protected]
    

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

Устранение неполадок

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

Подробнее: Устранение неполадок при подключении к вашему экземпляру

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

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 или ссылку сервера, Пользователь принимает имя пользователя и файл Identity - это файл, загруженный из AWS при создании экземпляра. Просто запустите следующую команду в терминале

ssh AWS

и наслаждайтесь!

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

0

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

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

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

0

У меня также была проблема с доступом к AWS через ssh.

Проверьте эти вещи:

  • убедитесь, что ваш ключ экземпляра должен иметь разрешение "0600".
  • проверьте свою группу безопасности, порт 22 должен быть открыт. или вы можете открыть весь трафик для входящего, если это не угроза безопасности.
  • Изменить строки группы безопасности с помощью myIP и сохранить.

Это помогло мне.

0

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

0

Не войти в систему, поскольку правильным пользователем для вас может быть проблема с Distro. Для определенного нового AMI имя пользователя может быть не "ubuntu", а "ec2-user". Например, для Amazon Linux пользователь "ec2-user". Эрик Хэммонд приводит примеры здесь: 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, вы можете просто просто перезапустить машину, чтобы у вас была однородность среди ваших кластеров. Если это ваша проблема, вам, вероятно, понадобится тот же ОС Distro, по крайней мере, для ваших linux-боксов.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню