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

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


person BetaRide    schedule 18.06.2011    source источник
comment
Не забудьте запустить chmod 400 my_private_key.pem.txt после его загрузки.   -  person Peter Kaminski    schedule 23.06.2016


Ответы (13)


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

  • Перейдите https://console.aws.amazon.com/ec2/home и войдите в свою существующую учетную запись Amazon. .
  • Click on "Key Pairs" on LHS or https://console.aws.amazon.com/ec2/home?region=us-east-1#s=KeyPairs.
    • You should see the list of KEYs generated by you (or during EC2 creation process).
    • Нажмите «Создать пару ключей», если вы ничего не видите или потеряли свой закрытый ключ.
    • Введите уникальное имя и нажмите Enter.
    • Появится панель загрузки, где вы сможете сохранить закрытый ключ, сохраните его.
    • Храните его где-нибудь с разрешением файла "0600".
  • Click on "Instances" on LHS or https://console.aws.amazon.com/ec2/home?region=us-east-1#s=Instances
    • You should see the list of ec2-instances, if you don't see any, then please create one.
    • Нажмите на машину EC2 и запишите публичный DNS-адрес.
  • Open your Terminal (in Linux) and type the following command
    • ssh -i /path/to/private-key root@<ec2-public-dns-address> - the root username has been avoided in the latest releases, based on your distribution select ec2-user or ubuntu as your username.
    • нажмите Enter
    • Вот и все.
person Rakesh Sankar    schedule 20.06.2011
comment
Я получаю Connection refused от ubuntu. использование замазки на win7 - это нормально. где может быть ошибка? - person t q; 28.08.2012
comment
@ t-q убедиться, что ваш IP-адрес не находится под каким-либо брандмауэром? также опубликуйте инструкцию отладки вашего SSH, запустите эту команду ssh -v [email protected] - person Rakesh Sankar; 28.08.2012
comment
Скорее всего, вы не сможете войти в систему как root напрямую через ssh. Вам нужно будет использовать учетную запись без полномочий root, такую ​​как ec2-user, поэтому 'ssh -i / path / to / private-key ec2-user @ hostname - person timbo; 22.11.2012
comment
Как только я попытался подключиться, он сказал мне, что я должен использовать ubuntu логин вместо root. Судя по всему, у меня есть экземпляр ubuntu server 12.04. - person Vasiliy Stavenko; 25.11.2012
comment
Я успешно создал учетную запись SSH, дальше как загрузить файлы с помощью SCP с созданной учетной записью ??? Когда я пытаюсь загрузить с помощью SCP, появляется сообщение Permission denied (publickey). - person Ashok KS; 12.06.2013
comment
@AshokKS Вы должны создать еще один вопрос, похоже, он многим понравится. - person Rakesh Sankar; 12.06.2013
comment
Спасибо @RakeshS, я не могу задать вопрос здесь, вы можете задать вопрос и сообщить нам ??? - person Ashok KS; 12.06.2013
comment
@AshokKS, что заставляет меня задуматься / любопытно - почему ты не можешь задать вопрос? - person Rakesh Sankar; 12.06.2013
comment
Спасибо, я получил это #scp -i ‹keypair› myfile.txt [email protected]/home/ubuntu/myfile.txt с сайта forum.aws.amazon.com/thread.jspa?threadID=64703. Stackoverflow не позволял мне задавать вопросы, потому что раньше задавал неважные вопросы. ржу не могу - person Ashok KS; 12.06.2013
comment
все равно получить этот массаж Permission denied (publickey). Это почему? - person Kasun Kariyawasam; 26.02.2015
comment
это, вероятно, означает, что вы не указали действительную пару ключей (или указали для нее неправильный адрес - например, если ваша пара ключей находится в вашем каталоге загрузок, вы должны указать: /home/kasun/Downloads/awsKey.pem - person tony gil; 12.05.2017
comment
Спасибо, что сделали более понятным, чем документ aws. :) - person Kulasangar; 05.12.2017
comment
Вам отказано в разрешении (публичный ключ). может использовать эластичный бобовый стебель. Если это так, вам нужно зайти в EB env Config, Security и выбрать новую пару ключей. Будут созданы новые экземпляры EC2, которые принимают ключ. И имя пользователя ec2-user или, может быть, ubuntu, но не root. - person Jorge Orpinel Pérez; 10.09.2018
comment
Не могли бы вы включить chmod 400 /path/to/private-key в свой ответ? - person Smily; 06.08.2019

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

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

person Shaharia Azam    schedule 21.08.2013

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

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

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

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

person prayagupd    schedule 06.06.2014

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

person Mainguy    schedule 09.08.2013

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

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

person Jay Sidri    schedule 19.06.2011

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

Больше ничего!

person Thomas Decaux    schedule 10.02.2015
comment
что, если у меня есть несколько ключей для разных регионов, например us-east-1.pem и us-west-2.pem - person Haseeb; 07.07.2017

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

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

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

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

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

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

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

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

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

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

person kenorb    schedule 12.06.2016

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

person WaterRocket8236    schedule 05.05.2017

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

person Henry    schedule 01.06.2014

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

person SayeedHussain    schedule 27.11.2014

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

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

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

person Diego Favero    schedule 11.06.2015

Первое изменение разрешения файла 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

person Vineet Jain    schedule 16.08.2017

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

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

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

  3. ssh -i privatekey.pem [email protected] // XXX.XXX.XXX.XXX = общедоступный IP-адрес вашего экземпляра
person Rajesh Prasad Yadav    schedule 25.04.2015