Как устранить ошибку SSH Permission Denied (publickey)
Ключи SSH — отличный способ аутентификации сеансов SSH без необходимости вводить пароль при каждом входе в систему. Однако, как и все технологии, ключи SSH не идеальны, и при их использовании вы можете столкнуться с ошибками. Одной из самых распространенных ошибок при работе с ключами SSH является ошибка отказа в доступе (publickey).
В этой статье будут обсуждаться различные причины этой ошибки и показаны быстрые шаги, которые вы можете предпринять, чтобы исправить ошибку.
Ошибка 1: авторизованные ключи и разрешения каталога
Одной из причин этой ошибки могут быть разрешения и права собственности, настроенные для каталога .ssh и файла author_keys.
Чтобы решить эту проблему, установите для каталога .ssh права доступа 700, а разрешения author_keys — 6oo.
sudo chmod 700 ~ / .ssh sudo chmod 600 authorized_keys
Ошибка 2: неверная конфигурация SSH
Другой распространенной причиной ошибки публичного ключа является неправильная конфигурация в файле sshd_config. Чтобы решить эту проблему, отредактируйте файл /etc/ssh/sshd_config и измените следующие записи.
#PermitRootLogin prohibit-password
#PasswordAuthentication yes
Вышеупомянутые записи должны быть такими, как показано ниже:
Сохраните конфигурацию и перезапустите службу:
sudo systemctl restart sshd.service
Ошибка 3: недостающие ключи
Другой возможной причиной ошибки отказа в доступе к открытому ключу может быть отсутствие ключей на вашем локальном компьютере. Если ваши ключи добавлены в файл author_keys сервера, но отсутствуют соответствующие закрытые ключи, это может вызвать ошибку.
Чтобы решить эту проблему, отредактируйте файл конфигурации ssh, отключите аутентификацию с открытым ключом и включите вход с паролем следующим образом:
Изменить на следующие записи:
#PubkeyAuthentication yes
PasswordAuthentication yes
После редактирования конфигурации сохраните файл и перезапустите службу SSH:
sudo systemctl restart sshd.service
Если вы уверены, что ваши ключи были скомпрометированы, вы можете удалить их из author_keys или добавить конкретный ключ в список отозванных в SSH.
Заключение
В этом кратком руководстве показано, как решать различные проблемы, которые могут вызвать ошибку отказа в доступе (открытый ключ) в SSH. Если проблема не устранена, рассмотрите другие методы устранения неполадок.
Все права защищены. © Linux-Console.net • 2019-2023
Ошибка: Permission denied (доступ запрещен) /публичный ключ/
Ошибка «Permission denied» (доступ запрещён) означает, что сервер отклонил ваше соединение. У этой ошибки может быть несколько причин; наиболее общие из них приведены ниже.
Можно ли использовать в Git команду sudo ?
Вы не должны использовать команду sudo с Git. Если у вас есть веская причина использовать sudo , убедитесь, что вы используете её с каждой командой (возможо, лучше использовать su чтобы получить оболочку с правами суперпользователя (администратора) в этом месте). Если вы сгенерировали SSH-ключ без sudo , а затем пытаетесь использовать команду, подобную sudo git push , вы не должны использовать те же ключи, которые сгенерировали.
Проверьте, что вы подключились к нужному серверу
Будьте внимательны при вводе команд с клавиатуры. В некоторых случаях корпоративная сеть может привести к проблемам разрешения записи DNS.
Так как документ подготовлен в рамках курсов повышения квалификации «Правильный курс» , то и проверка подключения будет описана именно на этом примере.
Напомним, что доступ к репозиторию [email protected] организован по порту 25000, а не по стандартному для SSH порту 22. Поэтому в команде подключения вы должны явно указать номер порта.
Для того, чтобы убедиться в том, что вы подключаетесь к нужному домену, введите следующую команду, добавив в строке номер порта ‘-p 2500’ :
Как исправить ошибку 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
Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.
Ошибка «Permission denied» в Linux
Все операционные системы семейства Linux имеют четко разграниченные права доступа. В своей домашней директории пользователь может делать все, что ему угодно, до тех пор, пока укладывается в отведенные рамки. Попытка выйти за них приводит к появлению ошибки «Permission Denied».
Изменение прав в терминале
Рассмотрим вариант, в котором необходимо прочесть текстовый документ, созданный другим пользователем. Файлы TXT в Linux можно просматривать непосредственно в терминале с помощью команды «cat».
-
Заходим в каталог с интересующим нас документом. Набираем команду «cat filename», подставляя вместо «filename» имя нужного файла. На скриншоте показана ошибка «Permission Denied», выглядящая в русской локализации как «Отказано в доступе».

Получаем ошибку «Permission Denied» при попытке просмотреть содержимое файла

Проверяем права доступа к документу используя команду «ls -l»

Используем команду «chmod» и административные права для получения доступа

Просматриваем содержимое текстового документа командой «cat»
Изменение прав в файловом менеджере
Разберемся, как выполнить рассмотренную выше операцию в графическом интерфейсе, используя файловый менеджер из дистрибутива.
-
Как видно на скриншоте, значок файла изначально имеет дополнительные символы, указывающие на то, что доступ у нему ограничен. При попытке посмотреть содержимое получаем графический вариант ошибки «Permission Denied».

При попытке открыть текстовый документ получаем ошибку «Permission Denied»

Открываем меню «Файл» и перезапускаем файловый менеджер от имени root

Набираем пароль root в окне аутентификации

Открываем параметры файла с помощью контекстного меню

На вкладке «Права» разрешаем доступ для группы root и остальных пользователей

Открываем ранее недоступный файл в режиме чтения и изучаем содержимое
В заключение
Как видим, избавиться от ошибки Permission Denied достаточно просто. Решив изменить правда доступа к системным файлам, лишний раз убедитесь, что полностью уверены в своих действиях и понимаете последствия вносимых изменений.