Как исправить ошибку SSH Permission Denied Public key в Linux?

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

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

Причина ошибки SSH Permission denied (publickey).

В основном причиной этой ошибки является неправильная конфигурация файла /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

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

Проверьте разрешение SSH Authorized_keys.

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

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

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

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

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

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

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

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

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

Это два основных способа, которые вы можете использовать для устранения ошибки «ssh permission denied public key». Может быть, мы упустили что-то еще? Сообщите нам об этом в комментариях.

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Вдохновлен www.tecmint.com

Похожие статьи

Комментарии (0)