Поиск по сайту:

Как исправить ошибку отказа в разрешении SSH (открытый ключ)


SSH (аббревиатура от Secure Shell) — это протокол удаленного доступа, который широко используется для удаленных подключений к серверам, сетевым устройствам и другим удаленным узлам, на которых работает служба. Он использует пару открытый/закрытый ключ для шифрования трафика между пользователем и удаленным узлом.

При подключении вы можете столкнуться с ошибкой "ssh permission denied public key". В этом руководстве мы попытаемся понять причину этой ошибки и способы ее устранения.

Причина ошибки отказа в разрешении SSH (открытый ключ)

Основная причина этой ошибки в основном заключается в неправильной настройке файла /etc/ssh/sshd_config, который является конфигурационным файлом SSH по умолчанию.

Еще одним виновником является недостаточное количество разрешений на файл authorized_keys в удаленной системе. Файл содержит открытые ключи клиентских систем, которым разрешено подключаться по SSH к серверу.

Без лишних слов, давайте рассмотрим возможные решения для решения этой ошибки.

Включить аутентификацию по паролю

Как указывалось ранее, одной из причин этой ошибки является неправильная конфигурация файла /etc/ssh/sshd_config. Одной из неправильных настроек является отключение функции аутентификации по паролю. Это может произойти в том случае, если кто-то использует только аутентификацию на основе ключа SSH и по какой-то причине закрытый ключ отсутствует.

Чтобы устранить эту ошибку, отредактируйте файл конфигурации SSH по умолчанию.

$ sudo vim /etc/ssh/sshd_config

Найдите атрибут PasswordAuthentication и задайте для него значение yes, как показано ниже.

Сохраните изменения и выйдите из файла конфигурации. Затем перезапустите службу SSH, чтобы изменения вступили в силу.

$ sudo systemctl restart sshd

Теперь вы должны иметь возможность беспрепятственно подключаться к удаленному хосту.

Проверка разрешения на Authorized_keys SSH

Иногда ошибка возникает из-за неправильных разрешений и владения файлом ~/.ssh/authorized_keys на удаленной системе.

Файл ~/.ssh/authorized_keys находится на удаленном сервере. Он содержит публичный SSH-ключ от клиентской системы, подключающейся к нему с помощью аутентификации по SSH-ключу. Помните, что закрытый ключ должен оставаться в клиентской системе и никогда не должен быть общим.

Файл authorized_keys должен принадлежать пользователю в удаленной системе. Кроме того, пользователь должен иметь права на чтение и запись.

Если это не так, установите права доступа к файлу, как показано на рисунке.

$ sudo chmod 600 ~/.ssh/authorized_keys
ls -l .ssh/authorized_keys

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

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

Если это не так, настройте разрешения следующим образом в восьмеричном формате.

$ sudo chmod 600 ~/.ssh/id_rsa
sudo chmod 644 ~/.ssh/id_rsa.pub

Это два основных способа, которые вы можете использовать для устранения ошибки "ssh permission denied public key". Не упустили ли мы что-то еще? Дайте нам знать в разделе комментариев.

Статьи по данной тематике: