Как исправить ошибку отказа в разрешении 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". Не упустили ли мы что-то еще? Дайте нам знать в разделе комментариев.