Ошибка разрешения при подключении к EC2 через SSH на Mac OSx
Я новичок в EC2. Я создал свои учетные данные безопасности с этого сайта:
http://paulstamatiou.com/how-to-getting-started-with-amazon-ec2
Это сработало отлично, я перезагрузился, и теперь, когда я пытаюсь подключиться, я получаю приглашение для входа/пароля. (Который я никогда не настраивал.) После нескольких попыток я получаю эту ошибку:
Разрешение отклонено (publickey, gssapi-with-mic).
Что я делаю неправильно?
Ответы
Ответ 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, поэтому убедитесь, что:
Проверьте журналы, когда вы пытаетесь подключиться к экземпляру по ssh, добавив в конце -v, и посмотрите, выдает ли он что-то конкретное.
Убедитесь, что вы используете правильное имя для 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
Следует переслать ваш ключ на ваше имя хоста. Предполагая, что ваши ключи добавлены, вы должны подключиться без проблем.