SSH Доступ запрещен (publickey) в Debian

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

Я попытался подключиться к серверу через SSH. После перемещения файла id_rsa в папку ~/.ssh я выполнил команду ‘ssh -v [email protected]‘. Ранее я мог подключаться к серверу таким образом, но в течение нескольких дней появлялось следующее сообщение о том, что подключиться не удается.

(base) pills@rpc model  $ ssh -v [email protected]
Идентификатор добавлен: /home/pills/.ssh/id_rsa (user@lion)
OpenSSH_9.2p1 Debian-2+deb12u3, OpenSSL 3.0.14 4 июня 2024
debug1: Чтение конфигурационных данных /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config строка 19: include /etc/ssh/ssh_config.d/*.conf совпадений не найдено
debug1: /etc/ssh/ssh_config строка 21: Применение параметров для *
debug1: Подключение к lion.cs.utep.edu [139.108.156.68] порт 22.
debug1: Подключение установлено.
debug1: файл идентификации /home/pills/.ssh/id_rsa тип 0
debug1: файл идентификации /home/pills/.ssh/id_rsa-cert тип -1
debug1: файл идентификации /home/pills/.ssh/id_ecdsa тип -1
debug1: файл идентификации /home/pills/.ssh/id_ecdsa-cert тип -1
debug1: файл идентификации /home/pills/.ssh/id_ecdsa_sk тип -1
debug1: файл идентификации /home/pills/.ssh/id_ecdsa_sk-cert тип -1
debug1: файл идентификации /home/pills/.ssh/id_ed25519 тип -1
debug1: файл идентификации /home/pills/.ssh/id_ed25519-cert тип -1
debug1: файл идентификации /home/pills/.ssh/id_ed25519_sk тип -1
debug1: файл идентификации /home/pills/.ssh/id_ed25519_sk-cert тип -1
debug1: файл идентификации /home/pills/.ssh/id_xmss тип -1
debug1: файл идентификации /home/pills/.ssh/id_xmss-cert тип -1
debug1: файл идентификации /home/pills/.ssh/id_dsa тип -1
debug1: файл идентификации /home/pills/.ssh/id_dsa-cert тип -1
debug1: Локальная версия SSH: SSH-2.0-OpenSSH_9.2p1 Debian-2+deb12u3
debug1: Удаленная версия протокола 2.0, удаленная версия программного обеспечения OpenSSH_8.4p1 Debian-5+deb11u3
debug1: compat_banner: совпадение: OpenSSH_8.4p1 Debian-5+deb11u3 pat OpenSSH* compat 0x04000000
debug1: Аутентификация на lion.cs.utep.edu:22 как 'user'
debug1: load_hostkeys: fopen /home/pills/.ssh/known_hosts2: Нет такого файла или каталога
debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts: Нет такого файла или каталога
debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts2: Нет такого файла или каталога
debug1: SSH2_MSG_KEXINIT отправлено
debug1: SSH2_MSG_KEXINIT получено
debug1: kex: алгоритм: curve25519-sha256
debug1: kex: алгоритм ключа хоста: ssh-ed25519
debug1: kex: шифрование сервер->клиент: [email protected] MAC: <implicit> сжатие: none
debug1: kex: шифрование клиент->сервер: [email protected] MAC: <implicit> сжатие: none
debug1: ожидание SSH2_MSG_KEX_ECDH_REPLY
debug1: SSH2_MSG_KEX_ECDH_REPLY получено
debug1: Ключ хоста сервера: ssh-ed25519 SHA256:FTkOSkSndLWDBx/JFV00SsRFAxxLB7yy3UshUZZJqUs
debug1: load_hostkeys: fopen /home/pills/.ssh/known_hosts2: Нет такого файла или каталога
debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts: Нет такого файла или каталога
debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts2: Нет такого файла или каталога
debug1: Хост 'dandelion.cs.utep.edu' известен и соответствует ключу ED25519.
debug1: Найден ключ в /home/pills/.ssh/known_hosts:1
debug1: ssh_packet_send2_wrapped: сброс последовательного номера отправки 3
debug1: переустановка ключа после 134217728 блоков
debug1: SSH2_MSG_NEWKEYS отправлено
debug1: ожидание SSH2_MSG_NEWKEYS
debug1: ssh_packet_read_poll2: сброс последовательного номера чтения 3
debug1: SSH2_MSG_NEWKEYS получено
debug1: переустановка ключа после 134217728 блоков
debug1: get_agent_identities: привязка агента к ключу хоста
debug1: get_agent_identities: агент вернул 1 ключ
debug1: Попытка ключа: /home/pills/.ssh/id_rsa RSA SHA256:h43tJtgvWzOaAUVvNnY9WRVDAVbeBulE6hDmGS0b0Ag агент
debug1: Попытка ключа: /home/pills/.ssh/id_ecdsa 
debug1: Попытка ключа: /home/pills/.ssh/id_ecdsa_sk 
debug1: Попытка ключа: /home/pills/.ssh/id_ed25519 
debug1: Попытка ключа: /home/pills/.ssh/id_ed25519_sk 
debug1: Попытка ключа: /home/pills/.ssh/id_xmss 
debug1: Попытка ключа: /home/pills/.ssh/id_dsa 
debug1: Больше нет методов аутентификации для попытки.
[email protected]: Доступ запрещён (publickey).

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

Ответ на проблему "Permission denied (publickey)" в Debian

Ошибка "Permission denied (publickey)" при подключении к серверу SSH на Debian может возникать по нескольким причинам. Рассмотрим последовательный процесс устранения этой проблемы.

1. Проверка SSH ключей

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

  • Проверьте, что файл id_rsa находится в каталоге ~/.ssh и имеет правильные разрешения. Для этого выполните следующие команды:
ls -la ~/.ssh

Файл id_rsa должен иметь разрешения 600, а каталог ~/.ssh700. Если разрешения неправильные, установите их с помощью:

chmod 600 ~/.ssh/id_rsa
chmod 700 ~/.ssh

2. Проверьте наличие публичного ключа на сервере

На сервере, к которому вы пытаетесь подключиться, убедитесь, что ваш публичный ключ находится в файле ~/.ssh/authorized_keys для вашего пользователя. Публичный ключ — это содержимое файла ~/.ssh/id_rsa.pub.

Чтобы добавить ключ, выполните следующую команду на вашем локальном компьютере:

cat ~/.ssh/id_rsa.pub | ssh [email protected] 'cat >> ~/.ssh/authorized_keys'

Замените [email protected] на адрес вашего сервера. Убедитесь, что на сервере у вас есть доступ через другой метод (например, парольная аутентификация), если ключ еще не установлен.

3. Проверка конфигурации SSH

Убедитесь, что конфигурация SSH-сервера настроена правильно. Проверьте файл /etc/ssh/sshd_config на сервере и убедитесь, что следующие параметры установлены:

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

После внесения изменений в конфигурационный файл не забудьте перезапустить SSH-сервер:

sudo systemctl restart ssh

4. Проверка SSH-агента

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

ssh-add -l

Если ваш ключ не отображается, добавьте его:

ssh-add ~/.ssh/id_rsa

5. Диагностика с помощью флага -v

Если ошибка все еще появляется, используйте команду SSH с включенным отладочным выводом, чтобы получить дополнительную информацию:

ssh -vvv [email protected]

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

6. Убедитесь в корректности пользовательских данных

Проверьте правильность имени пользователя и адреса сервера. Ошибки в этом могут привести к ошибке аутентификации.

Заключение

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

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

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