Подтвердить что ты не робот

Ошибка разрешения при подключении к EC2 через SSH на Mac OSx

Я новичок в EC2. Я создал свои учетные данные безопасности с этого сайта:

http://paulstamatiou.com/how-to-getting-started-with-amazon-ec2

Это сработало отлично, я перезагрузился, и теперь, когда я пытаюсь подключиться, я получаю приглашение для входа/пароля. (Который я никогда не настраивал.) После нескольких попыток я получаю эту ошибку:

Разрешение отклонено (publickey, gssapi-with-mic).

Что я делаю неправильно?

4b9b3361

Ответ 1

Две возможности, о которых я могу думать, хотя они упоминаются в ссылке, на которую вы ссылались:

  • Вы не указываете правильный файл ключевой пары SSH или имя пользователя в команде ssh, которую вы используете для входа на сервер:

    ssh -i [полный путь к файлу keypair] root @[имя хоста EC2 или IP-адрес]

  • У вас нет правильных прав на файл keypair; вы должны использовать

    chmod 600 [файл с ключевыми словами]

чтобы вы могли читать или записывать только файл.

Попробуйте использовать опцию -v с помощью ssh, чтобы получить больше информации о том, где именно она терпит неудачу, и отправьте сообщение здесь, если вам нужна дополнительная помощь.

[Обновить]: ОК, так что вы должны были видеть, если все было настроено правильно:

debug1: Authentications that can continue: publickey,gssapi-with-mic
debug1: Next authentication method: publickey
debug1: Trying private key: ec2-keypair
debug1: read PEM private key done: type RSA
debug1: Authentication succeeded (publickey).

Запускаете ли вы команду ssh из каталога, содержащего файл ec2-keypair? Если да, попробуйте указать ключ -i./ec2-keypair только для устранения проблем с траекторией. Также проверьте файл ls -l [полный путь к ec2-keypair] и убедитесь, что разрешения 600 (отображаются как rw -------). Если ничего не работает, я подозреваю содержимое файла keypair, поэтому попробуйте воссоздать его, используя шаги в вашей ссылке.

Ответ 2

Ключом к тому, чтобы я мог подключиться, было использование пользователя "ec2-user", а не root. То есть:.

ssh -i [full path to keypair file] [email protected][EC2 instance hostname or IP address]

Ответ 3

В моем случае это потому, что разрешение для моего домашнего каталога - 775, и SSH не удовлетворен этим. Он должен работать после выполнения:

server$ chmod go-w ~/
server$ chmod 700 ~/.ssh
server$ chmod 600 ~/.ssh/authorized_keys

У меня был очень похожий опыт сегодня днем. Я настраивал django на EC2, и внезапно я больше не могу использовать SSH. Рад, что у меня все еще было активное соединение, поэтому я изменил /etc/ssh/sshd_config, чтобы установить:

PasswordAuthentication yes

и установите пароль для ec2-user, затем я могу войти, введя пароль.

Однако после некоторого поиска в Google я нашел эту тему: http://ubuntuforums.org/showthread.php?t=577279. Оказалось, что во время моей настройки django я изменил разрешение на мой домашний каталог, и SSH очень строго об этом. Поэтому разрешение файла должно быть правильно установлено.

Ответ 4

Отметьте ответ mecca831:

ssh -v -i generated-key.pem [email protected]

[[email protected] ~] $sudo passwd ec2-user новый пароль новый_пароль

[[email protected] ~] $sudo vi/etc/ssh/sshd_config Измените файл следующим образом:

    # To disable tunneled clear text passwords, change to no here!
    PasswordAuthentication yes
    #PermitEmptyPasswords no
    # EC2 uses keys for remote access
    #PasswordAuthentication no

Сохранить

[[email protected] ~] $sudo service sshd stop [[email protected] ~] $sudo service sshd start

вы можете выйти и ssh следующим образом:

ssh [email protected]

и попросите пароль, которым больше не нужен ключ.

Ответ 5

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

ssh -i test.pem ec2-32-122-42-91.us-west-2.compute.amazonaws.com

и я добавляю имя пользователя:

ssh -i test.pem [email protected]

он работает!

Ответ 6

Вы уверены, что использовали правильный экземпляр? Я столкнулся с этой проблемой и понял, что что-то вроде 4 экземпляров ubuntu, которые я попробовал, на них не было установлены SSH-серверы.

Список хороших серверов см. в разделе "Получение изображений" примерно на полпути вниз. Похоже, что вы можете использовать что-то еще... по умолчанию имя пользователя - ubuntu на этих изображениях.

https://help.ubuntu.com/community/EC2StartersGuide

Ответ 7

+ 1

Я заметил, что для некоторых AMI, таких как Amazon Linux, будет работать [email protected] Но для образа ubuntu мне пришлось использовать ubuntu @вместо этого. Это никогда не было проблемой с .pem, просто с именем пользователя.

Ответ 8

Мне удалось войти в систему, используя ec2-user

ssh -i [полный путь к файлу ключевой пары] ec2-user @[имя или IP-адрес экземпляра EC2]

Ответ 9

Примерно через полчаса поиска и попытки отладить это я смог понять. В моей ситуации я использовал один и тот же файл pem для двух разных экземпляров ec2, и он работал для одного, а не для другого.

Мой первый экземпляр, над которым он работал, был стандартным aws linux ami amzn-ami-hvm-2014.03.2.x86_64-ebs. Я просто использовал

ssh -i mypemfile.pem [email protected] 

и он работал.

Затем я запустил экземпляр Fedora Fedora-x86_64-19-20140407-sda и попробовал ту же команду, но продолжал получать:

Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

После изменения моего имени пользователя из ec2-пользователя в Fedora он сработает!

ssh -i mypemfile.pem [email protected]

Ответ 10

Ничто из перечисленного не помогло мне, но futzing с пользователем казалось, что это обещало. Для моей конфигурации с использованием "ubuntu" было правильно.....

ssh -i [полный путь к файлу keypair] ubuntu @[имя хоста EC2 или IP-адрес]

Ответ 11

Я рекомендую не устанавливать пароль, как предлагают некоторые другие ответы. Использование файла ключей является более безопасным (никто не может угадать ваши пароли) и более удобным (после настройки файла конфигурации). Здесь базовый ~/.ssh/config:

Host my-ec2-server
  HostName 11.11.11.11
  User ec2-user
  IdentityFile /path/to/generated-key.pem

Теперь вы можете просто ввести ssh my-ec2-server, и вы вошли! Как уже упоминалось в других ответах, используйте -v, чтобы получить дополнительную информацию, когда ваше соединение не работает.

Ответ 12

Если у вас есть файл PPK, работающий на ПК, экспортируйте его как файл OpenSSH с помощью puttygen.exe для ПК и используйте его на Mac (любая машина Unix).

Я получал ту же ошибку -

debug1: Authentications that can continue: publickey,gssapi-with-mic
debug1: Next authentication method: publickey
debug1: Trying private key: ec2-keypair
debug1: read PEM private key done: type RSA
debug1: Authentications that can continue: publickey,gssapi-with-mic
debug1: No more authentication methods to try.
Permission denied (publickey,gssapi-with-mic)

Поскольку я использовал файл PPK в Windows, я выполнил шаги, описанные выше, и Bingo!

$ssh -i ec2-openssh-key root @ec2-instance-ip

Ответ 13

У меня была та же проблема с использованием AWS Toolkit для Eclipse. Я создал экземпляр Getting Started OK и открыл оболочку. Однако пользователь был настроен на пользователя ec2. Я использовал команду Open Shell As... и установил для пользователя root. Тогда это сработало.

Ответ 14

Если проблема не устранена и возникает примерно 10-15 раз подряд даже после изменения разрешений на файлы на 400 или 600, то, безусловно, что-то не так в экземпляре ec2, поэтому убедитесь, что:

  1. Проверьте журналы, когда вы пытаетесь подключиться к экземпляру по ssh, добавив в конце -v, и посмотрите, выдает ли он что-то конкретное.

  2. Убедитесь, что вы используете правильное имя для ssh, например, Ubuntu. Возможно, это зависит от дистрибутива Linux и пользователей, которых вы добавили, а также от того, получили ли вы разрешение для "root user" ssh.

Тогда, если ничего не помогает, следуйте документации здесь https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting.html#TroubleshootingInstancesConnectingMindTerm чтобы исправить это. Это помогло в моем случае, и это произошло из-за испорченных прав доступа к каталогам/файлам.

Ответ 15

Была похожая проблема. Вот шаги, используемые для настройки ключей SSH и пересылки на Mac. Сделал эти заметки для себя - может помочь кому-то... проверить по вашему конфигу.

Предположение здесь, что нет никаких настроек ключа. Если у вас уже есть настройка ключей, пропустите этот раздел.

$ ssh ‐ keygen ‐t rsa ‐b 4096

Генерация пары открытый/закрытый ключ RSA.

Введите файл, в котором нужно сохранить ключ (/Users/you/.ssh/id_rsa): [Нажмите enter] Введите кодовую фразу (пусто для пароля): [Введите кодовую фразу] Введите эту же фразу еще раз: [Введите код еще раз]

Измените ~/.ssh/config, добавив запись для файла ключа:

~/.ssh/config должен выглядеть примерно так:

Хост *

AddKeysToAgent yes

Использовать брелок да

IdentityFile ~/.ssh/id_rsa

Сохраните закрытый ключ в связке ключей:

$ ssh ‐ add ‐K ~/.ssh/id_rsa

Протестируйте его сейчас с помощью: ssh -A username @yourhostname

Следует переслать ваш ключ на ваше имя хоста. Предполагая, что ваши ключи добавлены, вы должны подключиться без проблем.