Як налаштувати доступ 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=Insistance
    • Ви повинні побачити список екземплярів ec2, якщо ви не бачите жодного, то створіть його.
    • Клацніть на машині EC2 і запишіть загальнодоступну адресу DNS.
  • Відкрийте термінал (у Linux) і введіть наступну команду
    • ssh -i /path/to/private-key root@<ec2-public-dns-address>- у останніх випусках уникнуто кореневого імені користувача на основі вибраного вами дистрибутиву ec2-userабо ubuntuв якості імені користувача
    • натисніть Enter
    • Це воно.

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

4
Як тільки я спробував підключити його, сказав мені, що я повинен використовувати ubuntuлогін замість root. Очевидно, у мене є примірник сервера ubuntu 12.04.
Василь Ставенко

3
Я успішно створив обліковий запис SSH, наступне - як завантажувати файли за допомогою SCP із створеним обліковим записом ??? Коли я намагаюся завантажити за допомогою SCP, там пише "Дозвіл відмовлено (відкритий ключ)".
Ашок К.С.

5
все одно отримати цей масаж "Дозвіл відмовлено (публічний ключ)." Чому так?
Касун Каріявасам

2
Ви отримуєте "Дозвіл відмовлено (публічний ключ)." може використовувати Elastic Beanstalk. Якщо так, вам потрібно зайти в 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.

Опинившись, ви можете видати, 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

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


що якщо у мене є мультипал-ключ для різних регіонів, таких як us-east-1.pem та us-west-2.pem
Haseeb

1

Щоб налаштувати Ubuntu на AWS, виконайте такі дії:

  1. Увійдіть до веб-служб Amazon і виберіть EC2 .
  2. Оберіть Launch Instance і дотримуйтесь майстра, вибравши потрібне зображення (Ubuntu), тип екземпляра, налаштувавши мережу VPC та підмережу, сховище та дозволивши доступ SSH до груп безпеки . Потім запустити .
  3. Вперше, можливо, вам потрібно буде налаштувати пару ключів і призначити її екземпляру. Ви також можете створити пару ключів у Парах ключів . Після створення завантажте файл 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якості призначення і вашого Інтернет - шлюзу , як Target .

Для отримання додаткової інформації перевірте: Усунення несправностей підключення до вашого екземпляра

Див. Також: Можливі причини таймауту при спробі отримати доступ до екземпляра 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

Проблемою може бути невхід в систему як правильного користувача для вашої ОС Distro. Для деяких нових 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, ви можете просто перезапустити машину взагалі, щоб ви мали однаковість між своїми кластерами. Якщо це ваша проблема, ви, мабуть, захочете отримати ті самі ОС Distro, принаймні для ваших 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.