Решил проблему. Это была проблема с тем, что браузер не обновлял кеш браузера ... duhh
Могу вспомнить две возможности, хотя они обе упомянуты в ссылке, на которую вы ссылались:
Вы не указываете правильный файл пары ключей SSH или имя пользователя в команде ssh, которую вы используете для входа на сервер:
ssh -i [полный путь к файлу пары ключей] root@[имя хоста или IP-адрес экземпляра EC2]
У вас нет правильных прав доступа к файлу пары ключей; вы должны использовать
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-------). Если ничего из этого не сработает, я заподозрю содержимое файла ключевой пары, поэтому попробуйте воссоздать его, используя шаги, описанные в вашей ссылке.
Была похожая проблема. Вот шаги, используемые для настройки ключей SSH и пересылки на Mac. Сделал эти заметки для себя - может помочь кому-то ... проверить по вашему конфигу.
Предполагается, что здесь нет настройки клавиш. Если у вас уже есть настройка клавиш, пропустите этот раздел.
$ ssh ‐ keygen ‐t rsa ‐b 4096
Генерация пары открытых / закрытых ключей rsa.
Введите файл, в котором нужно сохранить ключ (/Users/you/.ssh/id_rsa): [Нажмите enter] Введите кодовую фразу (пусто для пароля): [Введите кодовую фразу] Введите тот же код еще раз: [Введите кодовую фразу снова]
Измените ~ / .ssh / config, добавив запись для файла ключа:
~ / .ssh / config должно выглядеть примерно так:
Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~ / .ssh / id_rsa
Сохраните закрытый ключ в цепочке ключей:
$ ssh-add -K ~ / .ssh / id_rsa
Пройдите тестирование сейчас с помощью: ssh -A username @ yourhostname
Должны переслать ваш ключ к вашему имени хоста. Предполагая, что ваши ключи добавлены, вы должны подключиться без проблем.
У меня была та же проблема с использованием AWS Toolkit для Eclipse. Я создал экземпляр Getting Started OK и открыл оболочку. Тем не менее, пользователь был установлен на ec2-user. Я использовал команду Open Shell As ... и установил пользователя root. Тогда это сработало.
Я рекомендую не устанавливать пароль, как предполагают некоторые другие ответы. Использование файла ключей является более безопасным (никто не может угадать ваши пароли) и более удобным (после настройки файла конфигурации). Вот основные ~/.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 для получения дополнительной информации, когда ваше соединение не работает.
Примерно через полчаса поиска и отладки я смог это выяснить. В моей ситуации я использовал один и тот же pem-файл для двух разных экземпляров ec2, и он работал для одного, а не для другого.
Моим первым экземпляром, над которым он работал, был стандартный aws linux ami amzn-ami-hvm-2014.03.2.x86_64-ebs. Я просто использовал
ssh -i mypemfile.pem ec2-user@myec2ipaddress
, и это сработало.
Затем я запустил экземпляр Fedora Fedora-x86_64-19-20140407-sda и попробовал ту же команду, но продолжал получать:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
После смены имени пользователя с ec2-user на fedora все заработало!
ssh -i mypemfile.pem fedora@myec2address
Вы уверены, что использовали правильный экземпляр? Я столкнулся с этой проблемой и понял, что примерно в 4 экземплярах Ubuntu, которые я пробовал, не было установлено SSH-серверов.
Список хороших серверов см. В разделе «Получение изображений» примерно на полпути вниз. Похоже, вы используете что-то другое ... имя пользователя по умолчанию - Ubuntu на этих изображениях.
Присоединение к ответу mecca831:
ssh -v -i generate-key.pem ec2-user@11.11.11.11
[ec2-user@ip-11.11.11.11 ~] $ sudo passwd ec2-user newpassword newpassword
[ec2-user@ip-11.11.11.11 ~] $ 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
Сохранить
[ec2-user@ip-11.11.11.11 ~] $ sudo service sshd stop [ec2-user@ip-11.11.11.11 ~] $ sudo service sshd start
вы должны быть может выйти и выполнить ssh следующим образом:
ssh ec2-user@11.11.11.11
и получить запрос пароля, ключ больше не нужен.