Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

Permission denied (publickey) Linux / DevOps

Не работает SSH ключ: настройка прав на папку .ssh (700) и authorized_keys (600)

Обновлено: 27.08.2026 · Официальная документация ↗

Сервер упорно просит пароль, игнорируя публичный SSH-ключ

Вы скопировали публичный SSH-ключ на сервер, но при попытке входа OpenSSH всё равно требует ввести пароль учетной записи либо выдает критическую ошибку Permission denied (publickey,password). В 99% случаев виновником является встроенный механизм безопасности демона SSH (StrictModes): если права доступа к домашней директории, папке .ssh или файлу authorized_keys слишком открыты (например, 777 или 755), сервер намеренно игнорирует ключ, считая конфигурацию небезопасной.

Эталонные права доступа для SSH в Linux

  1. Выставьте правильные права на домашнюю папку пользователя:
    chmod 755 /home/username
    # Для пользователя root:
    chmod 700 /root
  2. Установите права 700 на скрытую папку .ssh:
    chmod 700 ~/.ssh

    (Права 700 означают: только владелец может читать, писать и заходить в эту папку; для всех остальных доступ полностью закрыт).

  3. Установите права 600 на файл со списком ключей authorized_keys:
    chmod 600 ~/.ssh/authorized_keys

    (Права 600 означают: чтение и запись разрешены строго владельцу файла).

  4. Убедитесь, что владельцем файлов является именно ваш пользователь:
    chown -R $USER:$USER ~/.ssh

Команда «всё в одном»: Выполните эту строчку под своим пользователем для мгновенного исправления: chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys && chown -R $USER:$USER ~/.ssh.

💡 Практика специалистов: Распространенная ошибка — создание файла `authorized_keys` под root внутри домашней папки обычного пользователя (`/home/user/.ssh`). В таком случае пользователь не является владельцем файла, и SSH отклоняет подключение.

Частые вопросы (FAQ)

Почему права 777 на папку .ssh ломают авторизацию?

Права 777 позволяют любому процессу на сервере дописать чужой ключ в ваш файл authorized_keys. Демон SSH считает это критической уязвимостью и отключает аутентификацию по ключу.

Как посмотреть подробный лог подключения для поиска ошибки?

Подключайтесь с флагом подробного вывода: `ssh -vvv user@IP_СЕРВЕРА`. Терминал выведет каждый шаг проверки ключа.

Что проверить в файле /etc/ssh/sshd_config?

Убедитесь, что включены параметры: `PubkeyAuthentication yes` и `AuthorizedKeysFile .ssh/authorized_keys`.

Как проверить лог SSH на стороне самого сервера?

Выполните команду: `sudo tail -n 50 /var/log/auth.log` (в Ubuntu/Debian) или `sudo journalctl -u ssh -e`.

Полезные материалы
Рекомендуем