Вопрос или проблема
Я пытаюсь установить SSH-соединение с Linux-сервером моего веб-хостинг-провайдера. Я получаю следующую ошибку при использовании PuTTY Release 0.74 Build платформа: 64-битная версия Windows x86: “Нет доступных методов аутентификации (сервер отправил: publickey, gssapi-keyex, gssapi-with-mic)”
- Вот что я сделал:
- Сгенерировал пару public_key – private_key
- Передал public_key провайдеру
- Вставил IP-адрес сервера и порт в “Сессия”
- Вставил путь к моему локально сохраненному private_key в “Подключение -> SSH -> Аутентификация”
- Сохранил всю конфигурацию
Наконец, если я загружаю конфигурацию и пробую открыть соединение, я получаю вышеуказанное сообщение об ошибке.
Я не могу точно сказать, решит ли это каждую проблему, и это определенно не решение для случаев, когда открытый ключ не был введен в файл authorized_keys
на сервере.
Я обновил PuTTY до самой последней версии, и затем вход в систему сработал. Так что, если у вас возникли проблемы, попробуйте установить последнюю версию по адресу https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
Вам нужно скопировать открытый ключ в ~/.ssh/authorized_keys или убедиться, что ваш облачный провайдер это сделает. Я задокументировал это с помощью скриншотов для Google Cloud здесь: https://www.bingehacking.net/2022/01/putty-no-supported-authentication.html
Эта ошибка обычно возникает, когда аутентификация с помощью открытого ключа не настроена правильно или когда сервер не разрешает аутентификацию по паролю. Вот несколько решений, которые вы можете попробовать:
Проверьте настройку аутентификации с помощью открытого ключа: Убедитесь, что открытый ключ, соответствующий закрытому ключу, который вы используете для аутентификации, присутствует в файле ~/.ssh/authorized_keys на сервере CentOS. Если открытого ключа нет, вам нужно будет добавить его вручную.
Проверьте разрешения файлов: На сервере CentOS проверьте разрешения для директории ~/.ssh и файла ~/.ssh/authorized_keys. Директория .ssh должна иметь разрешения 700 (drwx——), а файл authorized_keys должен иметь разрешения 600 (-rw——-). Если разрешения неправильные, вы можете исправить их с помощью команд chmod 700 ~/.ssh и chmod 600 ~/.ssh/authorized_keys.
Перезапустите службу SSH: В некоторых случаях перезапуск службы SSH на сервере CentOS может помочь решить проблему. Вы можете сделать это с помощью команды sudo systemctl restart sshd.
Проверьте настройки сервера SSH: Проверьте файл конфигурации сервера SSH (/etc/ssh/sshd_config) на сервере CentOS. Убедитесь, что параметр PasswordAuthentication установлен на yes, чтобы разрешить аутентификацию по паролю. Если вы внесете какие-либо изменения в файл конфигурации, не забудьте перезапустить службу SSH, используя sudo systemctl restart sshd.
Используйте правильный метод аутентификации: Если вы используете открытые ключи для аутентификации, убедитесь, что вы выбрали правильный вариант в PuTTY для указания соответствующего закрытого ключа. Также проверьте, что закрытый ключ имеет соответствующий формат (обычно формат PEM).
Надеюсь, эти решения помогут решить проблему с аутентификацией на CentOS через PuTTY.
Ответ или решение
Ошибка PuTTY Fatal Error: No supported authentication methods available
Ошибка "No supported authentication methods available (server sent: publickey, gssapi-keyex, gssapi-with-mic)" представляет собой распространённую проблему при попытке установить SSH-соединение с сервером Linux с использованием клиента PuTTY. В данной статье мы рассмотрим основные причины, вызывающие эту ошибку, и предложим комплексное решение.
Причины ошибки
-
Неправильная установка ключа:
- Убедитесь, что ваша публичная часть ключа была правильно установлена на сервере в файле
~/.ssh/authorized_keys
. Если ключ отсутствует, вы не сможете подключиться.
- Убедитесь, что ваша публичная часть ключа была правильно установлена на сервере в файле
-
Неправильные разрешения файлов:
- На сервере необходимо, чтобы директория
~/.ssh
имела разрешения 700 (drwx——), а файлauthorized_keys
— 600 (-rw——-). Неправильные разрешения могут предотвратить возможность аутентификации по ключам.
- На сервере необходимо, чтобы директория
-
Настройки SSH на сервере:
- Проверьте файл конфигурации SSH
/etc/ssh/sshd_config
. Убедитесь, что опцияPasswordAuthentication
установлена вyes
, если вы хотите разрешить аутентификацию по паролю. Если вы используете только аутентификацию по ключам, убедитесь, что отключили другие методы.
- Проверьте файл конфигурации SSH
-
Неподходящий формат ключа:
- Проверьте, в каком формате сохранен ваш приватный ключ на локальной машине. PuTTY требует формат PPK. При необходимости конвертируйте ключ с помощью PuTTYgen.
-
Обновление PuTTY:
- Если вы используете устаревшую версию PuTTY, это может вызвать проблемы. Убедитесь, что вы используете последнюю версию клиента PuTTY, загруженную с официального сайта.
Шаги для исправления ошибки
-
Проверка и установка публичного ключа:
- Скопируйте вашу публичную часть ключа в файл
~/.ssh/authorized_keys
на сервере. Это можно сделать с помощьюssh-copy-id
или вручную.
cat id_rsa.pub | ssh user@yourserver "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
- Скопируйте вашу публичную часть ключа в файл
-
Проверка прав доступа:
- Убедитесь, что права доступа на директорию
~/.ssh
и файл~/.ssh/authorized_keys
установлены правильно:
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
- Убедитесь, что права доступа на директорию
-
Редактирование конфигурации SSH:
- Откройте файл
/etc/ssh/sshd_config
и убедитесь, что нужные параметры установлены правильно.
sudo nano /etc/ssh/sshd_config # Измените или добавьте следующие строки PasswordAuthentication yes PubkeyAuthentication yes
После внесения изменений не забудьте перезапустить SSH-сервис:
sudo systemctl restart sshd
- Откройте файл
-
Конвертация ключа, если необходимо:
- Если ваш приватный ключ не в формате PPK, вы можете использовать PuTTYgen для конвертации:
- Откройте PuTTYgen.
- Выберите "Load" и загрузите ваш приватный ключ.
- Нажмите "Save private key", чтобы сохранить его в формате PPK.
-
Обновление PuTTY:
- Убедитесь, что у вас установлена последняя версия PuTTY. Если нет, обновите клиент и попробуйте снова.
Заключение
Следуя указанным рекомендациям, вы должны быть в состоянии решить проблему с аутентификацией при подключении к вашему серверу с использованием PuTTY. Если ошибка продолжает возникать, стоит проверить логи даже на уровне сервера и обратитесь к вашему поставщику хостинга для дополнительной технической поддержки.