AWS-Disconnected: нет поддерживаемых методов аутентификации (сервер отправлен: publickey)

SSH для моего сервера AWS просто сломался как для Putty, так и для Filezilla. Я прилагаю некоторые усилия, чтобы этот пост был полным списком устранения неполадок, поэтому, если вы поделитесь ссылками на другие страницы переполнения стека, я отредактирую их в вопрос.

Disconnected : No supported authentication methods available (server sent :publickey)


Ошибка знакома, когда я установил соединение почти год назад. Если вы настраиваете AWS SSH в первый раз, это решает наиболее распространенные проблемы:

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

  • неверный IP: перезапуск экземпляра AWS (или создание образа) не гарантирует сохранение тот же IP-адрес. Это, очевидно, должно быть обновлено в putty.

какие еще возможности существуют?

решение для этого (в соответствии с принятым сообщением ниже) заключается в том, что для AWS EC2 все 3 из них должны иметь надлежащие разрешения (777 не ok для любого из них). Вот один пример, который работает:

/home/ec2-user/ - 700
/home/ec2-user/.ssh/ - 600
/home/ec2-user/.ssh/authorized_keys - 600

/var / log / secure скажет вам, какой из них бросает ошибку, обратитесь к этому видео-учебнику, чтобы получить доступ, если ты полностью заблокирован.: http://d2930476l2fsmh.cloudfront.net/LostKeypairRecoveryOfLinuxInstance.mp4

14 ответов


для меня эта ошибка появилась сразу после того, как я изменил домашний каталог пользователя на

sudo usermod -d var/www/html username

Это также может произойти из-за отсутствия надлежащего разрешения на authorized_key файл в ~/.тсс. Убедитесь, что разрешение файла и разрешение 0600 ~/.СШ-это 700.


вы также получите "отключено: нет поддерживаемых методов аутентификации (сервер отправлен: publickey)", когда у вас есть правильный пользователь Linux, но вы не создали файл .ssh / authorized_keys и сохраненный открытый ключ, как указано в Управление учетными записями пользователей на вашем экземпляре Linux


есть еще одна причина, которая повлияет на ранее работающую систему. Я повторно создал свои экземпляры (используя AWS OpsWorks) для использования Amazon Linux вместо Ubuntu и получил эту ошибку после этого. Переключение на использование " ec2-user "в качестве имени пользователя вместо" ubuntu " решило проблему для меня.


PuTTY изначально не поддерживает формат закрытого ключа (.pem), созданный Amazon EC2. PuTTY имеет инструмент с именем PuTTYgen, который может конвертировать ключи в требуемый формат PuTTY (.ppk). Вы должны преобразовать свой закрытый ключ в этот формат (.ppk), прежде чем пытаться подключиться к вашему экземпляру с помощью PuTTY.

шаги, как это выполнить, описаны здесь:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/putty.html

Это решило проблема.


исчерпывающий ответ здесь:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/putty.html

ваша проблема может быть связана с неправильный логин, который варьируется в зависимости от масс. Используйте следующие логины в следующих AMIs:

  • ubuntu или root на ubuntu AMIs
  • ec2-пользователь на Amazon Linux AMI
  • в CentOS на Centos АМИ
  • debian или root на Debian AMIs
  • ec2-пользователь или fedora в Fedora
  • ec2-пользователь или root on:RHEL AMI, SUSE AMI, другие.

Если вы используете ОС:

  • Windows - получите ключ PEM с веб-сайта AWS и создайте файл PPK с помощью PuttyGen. Затем используйте Putty для использования PPK (выберите его, используя левый столбец: Соединение - > SSH - >Auth: закрытый ключ для авторизации)
  • Linux - run:ssh -i your-ssh-key.pem login@IP-or-DNS

удачи.


У меня была та же проблема, по ошибке, случайно. Я поделюсь им здесь, на случай, если кто-то мог совершить ту же ошибку. Основные шаги, как описано выше. 1, Загрузите putty и puttygen или пакет putty и установите его. 2, получить .PEM-файл из экземпляра AWS EC2. 3, Используйте puttygen для преобразования .PEM файл, так что у вас будет закрытый ключ --- ошибка произошла здесь. Я выбрал вкладку "конверсии" из PuttyGen и загрузил ее .файл pem. После загрузки PEM-файла, здесь не нажимайте " Generate", вместо этого непосредственно "сохранить закрытый ключ". Вот ключ, который тебе нужен. Если вы нажмете Generate, у вас будет совершенно другая пара ключей. 4, в замазке, польза ec2-user@your.public.dns.that.you.get.from.aws.ec2.instance, и загрузите закрытый ключ В SSH / Auth Удачи!


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

Я создал пару Linux VM и пытаюсь воспроизвести такую проблему подключения, одна вещь, которую я нашел, когда AWS попросил вас назвать свою пару ключей, не пустое пространство пользователя (" ") и точка (".") в имени пары ключей даже AWS фактически позволяет вам это делать.

ex. когда я назвал пару ключей как " AWS.БЕСПЛАТНЫЙ.LINUX", соединение всегда будет отказано. Когда я назвал "AWS_FREE_LINUX", все работает нормально.

надеюсь, это поможет немного.


на основе нескольких экземпляров, если файл ключа и имя пользователя верны, это происходит при изменении определенных разрешений каталога, связанных с пользователем root.


аналогичная проблема произошла со мной сегодня. Я также много искал об этом.Никто не поможет. Я только что сделал два изменения, и он работает правильно.

  1. Я посетил документация Amazon где опишите либо убедитесь, что существует правило, разрешающее трафик с Вашего компьютера на порт 22 (SSH), и если его нет, создайте его и отредактируйте "группу безопасности" и добавьте "SSH" на мой IP. Это поможет.
  2. в моем случае, в профиле шпаклевки, я должен снова разрешаю .файл ppk. Я не знаю, почему он спрашивает снова, без каких-либо изменений.

надеюсь, это поможет вам.


У меня была такая же проблема, я использовал публичный DNS вместо публичный IP. Теперь все разрешилось.


в моем случае проблема заключалась в том, что файл ppk был помещен в %USERPROFILE%\Downloads вместо %USERPROFILE%.папка СШ.

после того, как я переместил файл, проблема исчезла.


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

  1. выберите "Правка" > "Настройки" в главном меню
  2. в диалоговом окне Настройки выберите подключение > SFTP
  3. Нажмите кнопку " Добавить ключевой файл...- кнопка!--4-->
  4. перейдите к, а затем выберите нужный PEM-файл(ы)

при попытке подключиться к серверу SiteGround через Putty у меня была та же проблема. инструкции довольно тщательно, и должны работать для некоторых людей, но не работал для меня.

они рекомендуют запустить конкурс.exe, который работает в фоновом режиме. Вы регистрируете свои ключи с помощью Pageant, и он должен сообщить Putty о ключах, когда он пытается подключиться.

на пару of мест Я нашел предложения укажите ключ непосредственно в определении сеанса Putty: конфигурация Putty > соединение > SSH > Auth > "файл закрытого ключа для аутентификации", затем перейдите к файлу ключа .формат ППК.

этим без запуск Pageant решил проблему для меня.


во время сеанса ssh мое соединение сломалось, с тех пор я не могу ssh мой SRV, я начал новый экземпляр, и я могу ssh новый экземпляр (с тем же ключом).

Я установил старый том на новую машину и проверил .ssh / authorized_key и не смог найти никаких проблем с разрешением или контентом.