Это, наверное, глупо простой вопрос для некоторых :)
Я создал новый экземпляр 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
amazon-web-services
authentication
ssh
amazon-ec2
permissions
Мэтт Робертс
источник
источник
chmod 400 myfile.pem
как он используетmyfile.ppk
порожден PuTTYgen из файла PEM.Ответы:
Проблема в том, что у файла неправильный мод.
Легко решается выполнением -
chmod 400 mykey.pem
Взято из инструкции Amazon -
400 защищает его, делая его только для чтения и только для владельца.
источник
ssh -i YOUR_PEM_FILE.pem ec2-user@YOUR_IP
исправила проблему. Может быть, это должен быть принятый ответ ...Вы, вероятно, используете неправильное имя пользователя для входа в систему:
ubuntu
ec2-user
root
илиadmin
Чтобы войти, вам нужно настроить команду ssh:
НТН
источник
Permission denied (publickey).
и ничего больше ...chmod 500 <path_to_pem_file>
должно сделать это.Я знаю, что это очень поздно для игры ... но это всегда работает для меня:
шаг 1
шаг 2, просто ssh в :)
например
надеюсь, это поможет кому-то.
источник
ssh-agent -s
отчеты SSH_AGENT_PID = 3409; ssh-add выдает ту же ошибку, что и выше ......... Любая помощь здесь, плзХорошо, чувак, единственное, что сработало для меня, было:
Изменить разрешения ключа
Обязательно войдите в систему, используя ec2-user , и правильный адрес ec2-99 .... Адрес ec2-99 находится в нижней части консоли aws, когда вы вошли в систему и видите свой экземпляр в списке
источник
Посмотрите на эту статью . Вы используете не общедоступный DNS, а форму
где имя видно на вашей панели AMI
источник
Измените разрешение для файла ключей:
См. Документацию AWS для подключения к экземпляру:
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html#EC2_ConnectToInstance_Linux
источник
В окнах вы можете перейти к свойствам файла pem, и перейти на вкладку «Безопасность», затем нажать кнопку «Далее».
удалить наследство и все разрешения. тогда предоставь себе полный контроль. ведь SSL не выдаст вам ту же ошибку снова.
источник
Я знаю, что на этот вопрос уже отвечали, но для тех, кто попробовал их все, и вы все еще получаете надоедливый "Отказано в доступе (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
И вы получите великолепное
источник
В терминале Mac выполнение команды «chmod 400 xyz.pem» мне не помогло, оно продолжало говорить, что разрешение отклонено. Для пользователей Ubuntu я бы предложил
ssh-add xyz.pem
ssh -i xyz.pem ubuntu@ec2-54-69-172-118.us-west-2.compute.amazonaws.com
(обратите внимание, что пользователь Ubuntu)источник
Рекомендации по SSH-ключам и разрешению файлов:
открытый ключ / файл .pub - 0600 (чтение и запись только владельцем)
chmod XXXX file/directory
источник
ssh -i /.pem user @ host-machine-IP
Я думаю, это потому, что либо вы ввели неверные учетные данные, либо вы используете открытый ключ, чем закрытый ключ, либо ваши права доступа к порту открыты для ВСЕХ для ssh. Это плохо для Амазонки.
источник
Альтернативный вход в систему с помощью PuTTY. Это хорошо, но нужно несколько шагов.
Я использую PuTTY 0.66 в Windows.
источник
В дополнение к другим ответам, вот что я сделал, чтобы это работало:
cp key.pem ~/.ssh/key.pem
chmod 400 ~/.ssh/key.pem
eval `ssh-agent -s` ssh-add
ssh-add ~/.ssh/key.pem
Теперь вы должны быть в состоянии SSH EC2 (:
источник
Выполните 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
источник
Причин этой ошибки может быть три.
источник
Для меня проблема заключалась в том, что мой файл .pem находился в одном из моих разделов NTFS. Я переместил его в раздел Linux (ext4).
Дали необходимые разрешения, запустив:
chmod 400 my_file.pem
И это сработало.
источник
Что ж, глядя на описание вашего поста, я чувствую, что вы сделали 2 ошибки: -
Установите правильные разрешения для закрытого ключа . Команда ниже должна помочь вам установить правильное разрешение файла.
chmod 0600 mykey.pem
Неправильный пользователь ec2 вы пытаетесь войти .
Глядя на ваш журнал отладки, я думаю, что вы создали экземпляр Amazon Linux. Пользователь по умолчанию для этого типа экземпляра
ec2-user
. Если бы этот экземпляр был Ubuntu, то ваш пользователь по умолчанию был быubuntu
.ssh -i privatekey.pem default_ssh_user@server_ip
источник: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html
источник
Контрольный список:
Вы используете правильный закрытый ключ .pem файл?
Правильно ли установлены его разрешения? (Мои AMI бренда Amazon работают с 644, но Red Hat должен быть не менее 600 или 400. Не знаю об Ubuntu.)
Вы используете правильное имя пользователя в строке SSH? Amazon-brandded = "ec2-user", Red Hat = "root", Ubuntu = "ubuntu". Пользователь может быть указан как «ssh -i pem usename @ hostname» ИЛИ «ssh -l username -i pem hostname»
источник
Просто измените разрешение файла pem на 0600, разрешенное только для разрешенного пользователя, и оно будет работать как шарм.
А затем попробуйте ssh, он будет работать отлично.
источник
По умолчанию разрешения не позволяют ключ pem. Вам просто нужно изменить разрешение:
chmod 400 xyz.pem
и если экземпляр Ubuntu, то подключиться с помощью:
ssh -i xyz.pem ubuntu@ec2-youraws.amazonaws.com
источник
Файл ключа не должен быть общедоступным, поэтому используйте разрешение 400
Если выше команда показывает ошибку разрешения, используйте
Теперь зайдите в машину ec2, если вы все еще сталкиваетесь с проблемой, используйте ec2-user
ssh -i keyfile.pem ec2-user@ec2-12-34-56-78.compute-1.amazonaws.com
источник
.400 защищает его, делая его только для чтения и только для владельца.
Вы можете найти ответ из руководства ASW.
источник
Ниже приведены простые шаги для пользователя Linux для подключения к серверу с помощью файла .pem:
Step1: To к местоположению файла pem и скопируйте его в домашнее местоположение .ssh.
Шаг 2: Изменить разрешение
Шаг 3: Запустите следующую команду
Поскольку эта команда слишком длинная, вы можете создать псевдоним этого, используя следующие команды:
Напишите в конце ту же команду следующим образом.
Теперь перезагрузите вашу систему и используйте
sshConnect
для подключения к вашему серверу.источник
Это просто проблема с разрешением вашего ключа aws pem.
Просто измените разрешение ключа pem на 400, используя приведенную ниже команду.
Если у вас нет разрешения на изменение разрешения файла, вы можете использовать команду sudo, как показано ниже.
Я надеюсь, что это должно работать нормально.
источник
Я видел две причины этой проблемы
1) ключ доступа не имеет прав доступа. Ключи pem с разрешением по умолчанию не позволяют устанавливать безопасное соединение. Вам просто нужно изменить разрешение:
chmod 400 xyz.pem
2) Также проверьте, вошли ли вы с правильными учетными данными пользователя. В противном случае используйте sudo при подключении
sudo ssh -i {keyfile} ec2-user @ {IP-адрес удаленного хоста}
источник
Ваш ключ не должен быть публично доступен для работы SSH. Используйте эту команду, если необходимо:
Пример:
источник
Пожалуйста, игнорируйте этот ответ, если он не важен для вас, но из моего опыта я видел, что у людей возникли проблемы,
Permission denied (publickey)
потому что они просто вставляли свой открытый ключ (на целевой машине) без первой буквы !Это происходит при использовании vim для редактирования (вставки) ключа. Поскольку vim по умолчанию открывается в командном режиме (не в режиме вставки ), вставка ключа без переключения в режим вставки (т.е.
i
) приведет к пропуску первойs
буквы, например, вместоВы заканчиваете тем, что вставили
Поэтому, прежде чем пробовать другие решения, посмотрите, правильно ли вы вставили свой ключ ! т.е.
Только если вы уверены, выполните следующие шаги; Попытка ssh в подробном режиме (т. е. флаг
-v
) может указать на реальную проблему:В качестве дополнительного примечания, как уже упоминалось здесь другими, в большинстве случаев запуск пустого агента ssh (программы, хранящей ваши ключи в памяти) и добавление вашего ключа должен решить проблему:
источник
Для меня это помогло переместить файл .pem в каталог приложений. Так сказать, fooapp - это название моего приложения. Я поместил это прямо там.
источник
Иногда в папке может быть ошибка. Я не знаю, почему...
Вы можете изменить папку и попробовать еще раз. Например, вы можете экспериментировать в обычных папках («Рабочий стол», «Загрузки» и т. Д.).
Я попробовал этот метод и работал
источник
Эта ошибка только из-за разрешения.
Просто дайте разрешение 400
#chmod 400 pemfilepath
источник