Попытка SSH в экземпляр Amazon Ec2 - ошибка разрешения - PullRequest
650 голосов
/ 19 ноября 2011

Это, наверное, глупо простой вопрос для некоторых:)

Я создал новый экземпляр linux на Amazon EC2 и как часть этого скачал файл .pem, чтобы я мог войти в SSH.

Когда я пытался выполнить ssh с помощью:

ssh -i myfile.pem <public dns>

, я получил:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for 'amazonec2.pem' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: amazonec2.pem
Permission denied (publickey).

После этого поста Я попытался chmod +600 pemфайл, но теперь, когда я ssh, я просто получаю:

Permission denied (publickey).

Какую ошибку школьника я здесь делаю?Файл .pem находится в моей домашней папке (в osx).Это разрешения выглядят так:

-rw-------@   1 mattroberts  staff    1696 19 Nov 11:20 amazonec2.pem

Ответы [ 28 ]

1272 голосов
/ 30 мая 2012

Проблема в том, что у файла неправильный мод.

Легко решается путем выполнения -

chmod 400 mykey.pem

Взято из инструкций Amazon -

Ваш файл ключа не должен быть публично доступен для работы SSH.При необходимости используйте эту команду: chmod 400 mykey.pem

251 голосов
/ 19 ноября 2011

Вы, вероятно, используете неправильное имя пользователя для входа в систему:

  • большинство образов Ubuntu имеют пользователя ubuntu
  • AMI Amazon составляет ec2-user
  • большинство образов Debian имеют либо root, либо admin

Для входа необходимо настроить команду ssh:

ssh -l USERNAME_HERE -i .ssh/yourkey.pem public-ec2-host

НТН

58 голосов
/ 02 октября 2013

Я знаю, что это очень поздно для игры ... но это всегда работает для меня:

шаг 1

ssh-add ~/.ssh/KEY_PAIR_NAME.pem

шаг 2, просто введите ssh:)

ssh user_name@<instance public dns/ip>

например,

ssh ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com

надеюсь, это кому-нибудь поможет.

37 голосов
/ 10 апреля 2013

Хорошо, чувак, единственное, что сработало для меня, было:

  1. Изменение прав доступа к ключу

    chmod 400 mykey.pem

  2. Обязательно войдите в систему, используя ec2-user и правильный адрес ec2-99 .... Адрес ec2-99 находится в нижней части консоли aws, когда вы вошли в систему и видите свой экземпляр в списке

    ssh -i mykey.pem ec2-user@ec2-99-99-99-99.compute-1.amazonaws.com

27 голосов
/ 19 ноября 2011

Взгляните на эту статью .Вы используете не общедоступный DNS, а форму

ssh -i your.pem root@ec2-XXX-XXX-XXX-XXX.z-2.compute-1.amazonaws.com

, где имя отображается на панели AMI

14 голосов
/ 09 июля 2013

Изменить разрешение для файла ключа с помощью:

chmod 400 key-file-name.pem

См. Документацию AWS для подключения к экземпляру:

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html#EC2_ConnectToInstance_Linux

8 голосов
/ 07 августа 2018

В окнах вы можете перейти к свойствам файла pem и перейти на вкладку «Безопасность», затем нажать кнопку «вперед».

удалить наследование и все разрешения.тогда предоставь себе полный контроль.В конце концов, SSL не выдаст вам ту же ошибку снова.

6 голосов
/ 07 октября 2015

Я знаю, что на этот вопрос уже был дан ответ, но для тех, кто попробовал их все, и вы все еще получаете надоедливый "Отказано в доступе (publickey)".Попробуйте запустить свою команду с SUDO.Конечно, это временное решение, и вы должны правильно установить разрешения, но, по крайней мере, это позволит вам определить, что ваш текущий пользователь не работает с нужными вам привилегиями (как вы и предполагали)

sudo ssh -i amazonec2.pem ec2-xxx-xxx-xxx-xxx.us-west-2.compute.amazonaws.com

Как только вы сделаете это, вы получите сообщение, подобное этому:

Please login as the user "ec2-user" rather than the user "root"

, что также редко документировано.В таком случае просто сделайте это:

sudo ssh -i amazonec2.pem ec2-xxx-xxx-xxx-xxx.us-west-2.compute.amazonaws.com -l ec2-user

И вы получите великолепное:

   __|  __|_  )
   _|  (     /   Amazon Linux AMI
  ___|\___|___|
6 голосов
/ 07 апреля 2015

В терминале Mac выполнение команды «chmod 400 xyz.pem» мне не помогло, оно продолжало говорить, что разрешение отклонено. Для пользователей Ubuntu я бы предложил

  1. ssh-add xyz.pem
  2. ssh -i xyz.pem ubuntu@ec2-54-69-172-118.us-west-2.compute.amazonaws.com (обратите внимание, что пользователь ubuntu)
4 голосов
/ 08 января 2016

Ключи SSH и рекомендации по разрешению файлов:

  • .ssh каталог - 0700 (только по владельцу)
  • закрытый ключ / файл .pem - 0400 (только для чтения владельцем)
  • открытый ключ / файл .pub - 0600 (только для чтения и записи владельцем)

    chmod XXXX file/directory

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...