Попытка SSH в экземпляр Amazon Ec2 – ошибка разрешения

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

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

Когда я попытался ssh с:

ssh -i myfile.pem  

Я получил:

 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ 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 находится в моей домашней папке (в ОСО). Это разрешения выглядят следующим образом:

 [email protected] 1 mattroberts staff 1696 19 Nov 11:20 amazonec2.pem 

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

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

chmod 400 mykey.pem

Взятые с инструкций Амазонки –

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

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

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

Чтобы войти в систему, вам необходимо настроить команду ssh:

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

НТН

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

шаг 1

 ssh-add ~/.ssh/KEY_PAIR_NAME.pem 

шаг 2, просто ssh в 🙂

 ssh [email protected] 

например

 ssh [email protected] 

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

Ок, человек, единственное, что сработало для меня:

  1. Изменить разрешения ключа

    chmod 400 mykey.pem

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

    ssh -i mykey.pem [email protected]

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

 ssh -i your.pem [email protected] 

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

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

 chmod 400 key-file-name.pem 

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

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

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

  1. ssh-add xyz.pem
  2. ssh -i xyz.pem [email protected] (обратите внимание, что пользователь ubuntu)

Я знаю, что на этот вопрос уже был дан ответ, но для тех, кто их пробовал, и вы все еще получаете раздражающее «Разрешение отказано (публицик)». Попробуйте запустить команду с помощью 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 ___|\___|___| 

SSH-ключи и наилучшие методы доступа к файлам:

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

    chmod XXXX file/directory

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

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

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

  1. Получите ваш .pem, который был сгенерирован при первом экземпляре EC2.
  2. Преобразуйте файл .pem с .ppk с помощью PuttyGen, так как PuTTY не читает .pem.
  3. Откройте PuTTY и введите свое имя хоста, которое является вашим именем пользователя + Public DNS (пример [email protected]). Не ваше имя пользователя AWS.
  4. Затем перейдите в Connection> SSH> Auth . Затем добавьте файл .ppk . Нажмите « Обзор», где указано «Файл секретного ключа для аутентификации» .
  5. Нажмите «Открыть», и вы сможете сразу установить соединение.

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

Сделайте 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 @ ip

Это может быть связано с тремя причинами.

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

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

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

chmod 400 my_file.pem

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

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

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

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

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

Просто измените разрешение файла pem на 0600, разрешив только разрешенному пользователю, и он будет работать как шарм.

 sudo chmod 0600 myfile.pem 

И затем попробуйте ssh, он будет работать отлично.

 ssh -i myfile.pem <>@<> 

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

chmod 400 xyz.pem

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

ssh -i xyz.pem [email protected]

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

  • Скопируйте ключ в папку .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 (:

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

 chmod 400 keyfile.pem 

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

 sudo chmod 400 keyfile.pem 

Теперь ssh в машину ec2, если вы все еще сталкиваетесь с проблемой, используйте ec2-user

ssh -i keyfile.pem [email protected]

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

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

Для меня это было исправлено для перемещения файла .pem в каталог приложений. Су сказал, что fooapp – это имя моего приложения. Я разместил его прямо там.

Ниже приведены простые шаги для пользователя Linux для подключения к серверу с использованием файла .pem:

Шаг 1: Для размещения файла pem и скопируйте его в исходное место .ssh.

 cp example.pem ~/.ssh/example.pem 

Шаг 2. Измените разрешение.

 chmod 400 ~/.ssh/example.pem 

Шаг 3. Запустите следующую команду

 ssh -i ~/.ssh/example.pem [email protected] 

Поскольку эта команда слишком длинная, поэтому вы можете создать псевдоним этого, используя следующие команды:

  vim ~/.bashrc 

Напишите ту же самую команду следующим образом.

 alias sshConnect='ssh -i ~/.ssh/example.pem [email protected]' 

Теперь перезапустите свою систему и используйте sshConnect для подключения к вашему серверу.

Это просто проблема с вашим ключом aws pem.

Просто измените разрешение клавиши pem на 400, используя команду ниже.

 chmod 400 pemkeyname.pem 

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

 sudo chmod 400 pemkeyname.pem 

Надеюсь, это должно сработать.

Я видел две причины этой проблемы

1) ключ доступа не имеет правильного разрешения. ключи pem с разрешением по умолчанию не разрешены для безопасного подключения. Вам просто нужно изменить разрешение:

chmod 400 xyz.pem

2) Также проверьте, что вы вошли в систему с надлежащими учетными данными пользователя. В противном случае используйте sudo при подключении

sudo ssh -i {keyfile} ec2-user @ {ip-адрес удаленного хоста}

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

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

    chmod 0600 mykey.pem

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

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

    ssh -i privatekey.pem [email protected]_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

Эта ошибка возникает только из-за разрешения.

Просто дайте разрешение 600

#chmod 600 pemfilepath

  • Конечные точки Google и аутентификация пользователя
  • Событие AuthenticateRequest
  • Неисправность получения ClaimsPrincipal при использовании EasyAuth для аутентификации против AAD в Azure App Service в веб-приложении Asp.Net Core
  • Окончательное руководство по аутентификации веб-сайта на основе форм
  • Использование SymDony2 AccessDeniedHandlerInterface
  • Идентификационные данные пользователя MVC 5 Access Identity
  • Omniauth: обратный вызов не срабатывает, возвращает отказ с «недопустимыми учетными данными»
  • Лучшая практика аутентификации на основе токенов REST с JAX-RS и Джерси
  • Как продлить проверку подлинности ServiceStack
  • Добавить Keypair в существующий экземпляр EC2
  • CSRF-токен, необходимый при использовании аутентификации без учета состояния (= без учета)?
  • Давайте будем гением компьютера.