Ошибка доступа: permission denied publickey в SSH

Ошибка "permission denied publickey" при использовании SSH

Ошибка "permission denied publickey" при использовании SSH может возникать по разным причинам. В этом ответе я объясню, что означает эта ошибка, возможные причины ее возникновения и как ее решить.

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

Ошибка "permission denied publickey" означает, что сервер отклонил ваш публичный ключ и не дал разрешение на подключение. Существует несколько возможных причин, по которым это может произойти:

  1. Отсутствие публичного ключа на сервере: Если вы никогда не подключались к этому серверу и вам не удалось скопировать свой публичный ключ на его сервер, то вам необходимо добавить публичный ключ на удаленный сервер. Для этого вам нужно скопировать содержимое вашего публичного ключа (обычно это файл с расширением .pub) и добавить его в файл ~/.ssh/authorized_keys на сервере. Это можно сделать с помощью следующей команды:

cat ~/.ssh/id_rsa.pub | ssh user@server 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'

  1. Неправильные права на файлы ключей: SSH требует, чтобы публичный ключ был доступен только для чтения для владельца. Убедитесь, что у вас правильные права доступа к приватному и публичному ключу на вашем локальном компьютере, а также на путь ~/.ssh/authorized_keys на удаленном сервере. Вы можете изменить права доступа с помощью следующих команд:

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

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

PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys

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


sudo service ssh restart

Если вы все еще получаете ошибку "permission denied publickey", проверьте еще несколько возможных причин:

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

Ниже приведены примеры кода для добавления публичного ключа на удаленный сервер и изменения прав доступа на файлы ключей на вашем локальном компьютере:


# Добавление публичного ключа на сервер
cat ~/.ssh/id_rsa.pub | ssh user@server 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'

# Изменение прав доступа к файлам ключей на локальном компьютере
chmod 600 ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa.pub
chmod 700 ~/.ssh

В заключение, ошибка "permission denied publickey" при подключении по SSH может быть вызвана несколькими причинами, такими как отсутствие публичного ключа на сервере, неправильные права на файлы ключей или неправильная конфигурация SSH сервера. Проверьте и исправьте эти возможные проблемы, чтобы успешно подключиться к удаленному серверу по SSH.

Похожие вопросы на: "ssh permission denied publickey "

Visual Studio 2019 скачать
Флаги: купить флаги стран мира и государственные флаги
Отключение: инструкции, советы и рекомендации
Статический C - руководство для начинающих и профессионалов
Уроки и советы по использованию курсоров в CSS
Оверхед: преимущества и применение
Git Commit Amend - как изменить последний коммит в Git
Белый градиент: стильный дизайн для вашего сайта
Как удалить локальную ветку в Git: подробная инструкция
Модуль числа в JavaScript