Ошибка авторизации SSH с использованием публичного ключа: Доступ запрещен (publickey, gssapi-keyex, gssapi-with-mic)

Вопрос или проблема

Я пытаюсь подключиться к своему серверу по SSH с помощью команды ssh -i key.pem ec2-user@ip_address, как это делал без проблем на прошлой неделе, но на этой неделе у меня возникает ошибка ec2-user@ip_address:Permission denied (publickey,gssapi-keyex,gssapi-with-mic)., что уже случалось раньше и привело меня к подключению к неправильному серверу или неправильному файлу ключа, но я это исправил, так что знаю, что это не проблема.

Это сообщение об ошибке, которое я получаю при попытке подключиться.

OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n 7 Dec 2017
debug1: Чтение конфигурационных данных /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config строка 19: Применение параметров для *
debug2: разрешение "34.255.97.122" порт 22
debug2: ssh_connect_direct: needpriv 0
debug1: Подключение к 34.255.97.122 [34.255.97.122] порт 22.
debug1: Соединение установлено.
debug1: key_load_public: Нет такого файла или каталога
debug1: identity file key1.pem type -1
debug1: key_load_public: Нет такого файла или каталога
debug1: identity file key1.pem-cert type -1
debug1: Локальная версия SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.3
debug1: Удаленная версия протокола 2.0, удаленная версия ПО OpenSSH_7.4
debug1: совпадение: OpenSSH_7.4 pat OpenSSH* compat 0x04000000
debug2: fd 3 установка O_NONBLOCK
debug1: Аутентификация на 34.255.97.122:22 как 'ec2-user'
debug3: hostkeys_foreach: чтение файла "/home/ubuntu/.ssh/known_hosts"
debug3: record_hostkey: найден ключ типа ECDSA в файле /home/ubuntu/.ssh/known_hosts:7
debug3: load_hostkeys: загружено 1 ключей с 34.255.97.122
debug3: order_hostkeyalgs: предпочтительные hostkeyalgs: [email protected],[email protected],[email protected],ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521
debug3: отправка пакета: тип 20
debug1: SSH2_MSG_KEXINIT отправлен
debug3: получение пакета: тип 20
debug1: SSH2_MSG_KEXINIT получен
debug2: локальная клиентская KEXINIT предложение
debug2: KEX алгоритмы: curve25519-sha256,[email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha256,diffie-hellman-group14-sha1,ext-info-c
debug2: алгоритмы ключей хоста: [email protected],[email protected],[email protected],ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,[email protected],[email protected],ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa
debug2: шифры ctos: [email protected],aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected]
debug2: шифры stoc: [email protected],aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected]
debug2: MACs ctos: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: MACs stoc: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: сжатие ctos: none,[email protected],zlib
debug2: сжатие stoc: none,[email protected],zlib
debug2: языки ctos: 
debug2: языки stoc: 
debug2: first_kex_follows 0 
debug2: зарезервировано 0 
debug2: peer server KEXINIT предложение
debug2: KEX алгоритмы: curve25519-sha256,[email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha256,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
debug2: алгоритмы ключей хоста: ssh-rsa,rsa-sha2-512,rsa-sha2-256,ecdsa-sha2-nistp256,ssh-ed25519
debug2: шифры ctos: [email protected],aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected],aes128-cbc,aes192-cbc,aes256-cbc,blowfish-cbc,cast128-cbc,3des-cbc
debug2: шифры stoc: [email protected],aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected],aes128-cbc,aes192-cbc,aes256-cbc,blowfish-cbc,cast128-cbc,3des-cbc
debug2: MACs ctos: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: MACs stoc: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: сжатие ctos: none,[email protected]
debug2: сжатие stoc: none,[email protected]
debug2: языки ctos: 
debug2: языки stoc: 
debug2: first_kex_follows 0 
debug2: зарезервировано 0 
debug1: kex: алгоритм: curve25519-sha256
debug1: kex: алгоритм ключа хоста: ecdsa-sha2-nistp256
debug1: kex: шифр сервер->клиент: [email protected] MAC: <implicit> сжатие: none
debug1: kex: шифр клиент->сервер: [email protected] MAC: <implicit> сжатие: none
debug3: отправка пакета: тип 30
debug1: ожидается SSH2_MSG_KEX_ECDH_REPLY
debug3: получение пакета: тип 31
debug1: Хост-ключ сервера: ecdsa-sha2-nistp256 SHA256:KcJCcNrItmtT7CwXIEndRD42wLyphxOtQR540TzFbSk
debug3: hostkeys_foreach: чтение файла "/home/ubuntu/.ssh/known_hosts"
debug3: record_hostkey: найден ключ типа ECDSA в файле /home/ubuntu/.ssh/known_hosts:7
debug3: load_hostkeys: загружено 1 ключей с 34.255.97.130
debug1: Хост '34.255.97.130' известен и соответствует ECDSA ключу хоста.
debug1: Найден ключ в /home/ubuntu/.ssh/known_hosts:7
debug3: отправка пакета: тип 21
debug2: set_newkeys: режим 1
debug1: повторная авторизация после 134217728 блоков
debug1: SSH2_MSG_NEWKEYS отправлен
debug1: ожидается SSH2_MSG_NEWKEYS
debug3: получение пакета: тип 21
debug1: SSH2_MSG_NEWKEYS получен
debug2: set_newkeys: режим 0
debug1: повторная авторизация после 134217728 блоков
debug2: ключ: key1.pem ((nil)), явный
debug3: отправка пакета: тип 5
debug3: получение пакета: тип 7
debug1: SSH2_MSG_EXT_INFO получен
debug1: kex_input_ext_info: server-sig-algs=<rsa-sha2-256,rsa-sha2-512>
debug3: получение пакета: тип 6
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT получен
debug3: отправка пакета: тип 50
debug3: получение пакета: тип 51
debug1: Аутентификации, которые могут продолжаться: publickey,gssapi-keyex,gssapi-with-mic
debug3: начало заново, прошли другой список publickey,gssapi-keyex,gssapi-with-mic
debug3: предпочтительные gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive,password
debug3: authmethod_lookup gssapi-keyex
debug3: оставшиеся предпочтительные: gssapi-with-mic,publickey,keyboard-interactive,password
debug3: authmethod_is_enabled gssapi-keyex
debug1: Следующий метод аутентификации: gssapi-keyex
debug1: Нет действительного контекста обмена ключами
debug2: мы не отправили пакет, отключить метод
debug3: authmethod_lookup gssapi-with-mic
debug3: оставшиеся предпочтительные: publickey,keyboard-interactive,password
debug3: authmethod_is_enabled gssapi-with-mic
debug1: Следующий метод аутентификации: gssapi-with-mic
debug1: Неопределенная ошибка GSS. Небольшой код может предоставить дополнительную информацию
Нет учетных данных Kerberos (умолчание: файл кэша: FILE:/tmp/krb5cc_1000)

debug1: Неопределенная ошибка GSS. Небольшой код может предоставить дополнительную информацию
Нет учетных данных Kerberos (умолчание: файл кэша: FILE:/tmp/krb5cc_1000)

debug2: мы не отправили пакет, отключить метод
debug3: authmethod_lookup publickey
debug3: оставшиеся предпочтительные: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Следующий метод аутентификации: publickey
debug1: Попытка приватного ключа: key1.pem
debug3: sign_and_send_pubkey: RSA SHA256:ROAQ4zFxWIgz+DlQwSwqivDbjdPsFEh1LCmRYMc/iss
debug3: отправка пакета: тип 50
debug2: мы отправили пакет с публичным ключом, ждем ответа
debug3: получение пакета: тип 51
debug1: Аутентификации, которые могут продолжаться: publickey,gssapi-keyex,gssapi-with-mic
debug2: мы не отправили пакет, отключить метод
debug1: Больше нет методов аутентификации для проб
[email protected]: Доступ запрещен (publickey,gssapi-keyex,gssapi-with-mic).

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

Есть 2 сценария:

  1. ssh_config — это файл конфигурации для ssh-client.
  2. sshd_config — это файл конфигурации для ssh-server.

Если sshd_config не существует, установите ssh-server.

sudo apt-get install openssh-server

Ответ или решение

Ошибка SSH Public Key Authorization, которую вы получаете при попытке подключения к серверу, указывает на то, что ваша аутентификация по открытому ключу не удалась. Вот несколько шагов, которые могут помочь решить эту проблему:

1. Проверьте путь к приватному ключу

Убедитесь, что вы указываете правильный путь к вашему приватному ключу (key.pem). Выполните команду в терминале, чтобы проверить, существует ли файл:

ls -l path/to/key.pem

Замените path/to/ на действительный путь к вашему ключу. Если файл не существует, вы получите сообщение об ошибке.

2. Проверьте права доступа к ключу

Приватный ключ должен иметь правильные права доступа. Убедитесь, что файл доступен только для чтения владельцу:

chmod 400 path/to/key.pem

3. Проверьте правильность ключа

Убедитесь, что ключ, который вы используете, соответствует публичному ключу, который находится на сервере. Для этого вы можете выполнить следующую команду на локальной машине (где хранится ваш ключ):

ssh-keygen -y -f path/to/key.pem

Эта команда выдаст публичный ключ. Сравните его с содержимым файла ~/.ssh/authorized_keys на сервере. Убедитесь, что они совпадают.

4. Проверьте конфигурацию SSH на сервере

Убедитесь, что SSH-сервер правильно настроен. На сервере проверьте файл настроек sshd_config, который обычно находится по пути /etc/ssh/sshd_config. Убедитесь, что следующие строки присутствуют и не закомментированы (без символа #):

PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys

Если вы внесли изменения, перезапустите службу SSH:

sudo systemctl restart sshd

5. Проверьте, не изменился IP-адрес сервера

Если вы подключаетесь по имени хоста, убедитесь, что IP-адрес сервера не изменился. Вы можете использовать команду ping для проверки:

ping ec2-user@your-server-address

6. Убедитесь, что сервер работает

Если сервер не запущен или его служба SSH отключена, вы не сможете подключиться. Убедитесь, что SSH-сервер запущен:

sudo systemctl status sshd

Если он не запущен, запустите его:

sudo systemctl start sshd

7. Проверка переменных окружения

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

8. Проверьте журнал аутентификации на сервере

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

sudo tail -f /var/log/auth.log

Или:

sudo journalctl -u sshd

Это даст вам информацию о том, какие ошибки происходят во время аутентификации.

Заключение

Следуя этим шагам, вы сможете выявить и устранить причину ошибки "Permission denied (publickey,gssapi-keyex,gssapi-with-mic)" при подключении по SSH. Если проблема не исчезнет, возможно, имеет смысл создать новый ключ или даже установить новую конфигурацию для SSH-сервера.

Оцените материал
Добавить комментарий

Капча загружается...