Попытка 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 ]

3 голосов
/ 28 сентября 2012

ssh -i /.pem user @ host-machine-IP

Я думаю, это потому, что либо вы ввели неверные учетные данные, либо вы используете открытый ключ, чем закрытый ключ, либо ваши права доступа к портуоткрыть для всех в ssh.Это плохо для Амазонки.

3 голосов
/ 14 апреля 2016

Альтернативный вход в систему с помощью PuTTY.Это хорошо, но нужно несколько шагов.

  1. Получите ваш .pem, который был сгенерирован при первом создании экземпляра EC2.
  2. Преобразование файла .pem .ppk с помощью PuttyGen, поскольку PuTTY не читает .pem.
  3. Откройте PuTTY и введите Имя хоста , которое является вашим именем пользователя экземпляра + Public DNS (например, ubuntu @ ec2-xxx-xxx-xxx-xxx.region.compute.amazonaws.com). Не ваше имя пользователя учетной записи AWS.
  4. Затем перейдите к Соединение> SSH> Auth .Затем добавьте файл .ppk .Нажмите Обзор , где написано «Файл закрытого ключа для аутентификации» .
  5. Нажмите Открыть, и вы сможете сразу установить соединение.

Я использую PuTTY 0.66 в Windows.

2 голосов
/ 18 октября 2015

Выполните chmod 400 yourkeyfile.pem Если ваш экземпляр - Amazon linux, тогда используйте ssh -i yourkeyfile.pem ec2-user @ ip для ubuntu ssh -i yourkeyfile.pem ubuntu @ ip для centos ssh -i yourkeyfile.pem centos @ф

2 голосов
/ 12 июля 2017

Причиной этой ошибки может быть три причины.

  1. Вы используете неправильный ключ.
  2. Ваш ключ не имеет правильных разрешений. Вам нужно изменить значение до 400.
  3. Вы используете не того пользователя. Образы Ubuntu имеют пользователя ubuntu , AMI Amazon - ec2-user , а образы debian - root или admin
2 голосов
/ 25 марта 2018

Проблема для меня заключалась в том, что мой файл .pem находился в одном из моих разделов NTFS. Я переместил его в раздел Linux (ext4).

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

chmod 400 my_file.pem

И это сработало.

1 голос
/ 30 марта 2013

Контрольный список:

  1. Используете ли вы правильный личный ключ .pem файл?

  2. Правильно ли установлены его разрешения? (Мои AMI бренда Amazon работают с 644, но Red Hat должен быть не менее 600 или 400. Не знаю об Ubuntu.)

  3. Используете ли вы правильное имя пользователя в строке SSH? Amazon-brandded = "ec2-user", Red Hat = "root", Ubuntu = "ubuntu". Пользователь может быть указан как «ssh -i pem usename @ hostname» ИЛИ «ssh -l username -i pem hostname»

1 голос
/ 21 июня 2018

Файл ключа не должен быть общедоступным, поэтому используйте разрешение 400

chmod 400 keyfile.pem

Если приведенная выше команда показывает ошибку разрешения, используйте

sudo chmod 400 keyfile.pem

Теперь введите ssh в машину ec2, если проблема не устранена, введите ec2-user

ssh -i keyfile.pem ec2-user@ec2-12-34-56-78.compute-1.amazonaws.com

1 голос
/ 21 июня 2018

Ну, глядя на описание вашего поста, я чувствую, что вы сделали 2 ошибки: -

  1. Установите правильные разрешения для закрытого ключа . Команда ниже должна помочь вам установить правильное разрешение файла.

    chmod 0600 mykey.pem

  2. Неправильный пользователь ec2, которого вы пытаетесь авторизовать .

    Глядя на ваш журнал отладки, я думаю, что вы создали экземпляр Amazon Linux. Пользователь по умолчанию для этого типа экземпляра - ec2-user. Если бы этот экземпляр был Ubuntu, то вашим пользователем по умолчанию был бы ubuntu.

    ssh -i privatekey.pem default_ssh_user@server_ip

Note:
   For an Amazon Linux AMI, the default user name is ec2-user.

   For a Centos AMI, the default user name is centos.

   For a Debian AMI, the default user name is admin or root.

   For a Fedora AMI, the default user name is ec2-user or fedora.

   For a RHEL AMI, the default user name is ec2-user or root.

   For a SUSE AMI, the default user name is ec2-user or root.

   For an Ubuntu AMI, the default user name is ubuntu.

   Otherwise, if ec2-user and root don't work, check with the AMI provider.

источник: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html

1 голос
/ 04 марта 2018

В дополнение к другим ответам, вот что я сделал для того, чтобы это работало:

  • Скопируйте ключ в папку .ssh, если у вас еще не было:

cp key.pem ~/.ssh/key.pem

  • Дайте соответствующие разрешения ключу

chmod 400 ~/.ssh/key.pem

eval `ssh-agent -s` ssh-add

  • Затем добавьте ключ

ssh-add ~/.ssh/key.pem

Теперь вы должны быть в состоянии SSH EC2 (:

1 голос
/ 29 ноября 2017

BY разрешения по умолчанию не разрешают ключ pem. Вам просто нужно изменить разрешение:

chmod 400 xyz.pem

и, если экземпляр ubuntu, подключитесь с помощью:

ssh -i xyz.pem ubuntu@ec2-youraws.amazonaws.com

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