Skip to Content

Как отключить / запретить ssh аутентификацию по паролю Linux - Настройка sshd_config

отключение парольной аутентификации на vps сервере debain 12


Отключение парольной аутентификации на vps сервере debian 12

Такие настройки sshd_comfig имеет debian server по умолчанию:

Include /etc/ssh/sshd_config.d/*.conf
PermitRootLogin yes
PasswordAuthentication yes
KbdInteractiveAuthentication no
UsePAM yes
X11Forwarding yes
PrintMotd no
# Allow client to pass locale environment variables
AcceptEnv LANG LC_*
Subsystem       sftp    /usr/lib/openssh/sftp-server


Давайте разберемся по подробнее что означают параметры:


Include /etc/ssh/sshd_config.d/*.conf

  • Эта строка говорит SSH серверу, что он должен включить все конфигурационные файлы с расширением .conf из каталога /etc/ssh/sshd_config.d/. Это позволяет разделить настройки на несколько файлов для удобства администрирования.

PermitRootLogin yes

  • Разрешает вход пользователя root по SSH. Значение yes означает, что вход с использованием пароля или ключа разрешен для пользователя root. Это небезопасно, так как злоумышленники могут попытаться получить доступ к учетной записи root. Рекомендуется отключить вход для пользователя root, изменив на PermitRootLogin no.

PasswordAuthentication yes

  • Разрешает аутентификацию по паролю. Включение этого параметра позволяет пользователям входить с использованием пароля, что не является безопасным способом аутентификации. Если вы хотите использовать только ключи SSH, установите значение no.

KbdInteractiveAuthentication no

  • Отключает аутентификацию с помощью клавиатуры и интерактивных запросов. Это может использоваться для дополнительных методов аутентификации, но в контексте безопасного доступа по ключам это не имеет особого значения. Можно оставить, если не требуется.

UsePAM yes

  • Включает поддержку PAM (Pluggable Authentication Modules). Этот параметр позволяет использовать различные механизмы аутентификации, такие как системы двухфакторной аутентификации или другие методы. Для использования только SSH-ключей можно оставить значение yes, но если вы хотите упростить конфигурацию, можно отключить PAM, установив no.

X11Forwarding yes

  • Разрешает перенаправление X11, что позволяет пользователям запускать графические приложения удаленно. Если на сервере не требуется использовать графические приложения, можно отключить этот параметр (X11Forwarding no), чтобы повысить безопасность.

PrintMotd no

  • Отключает вывод сообщения о приветствии (Message of the Day, MOTD) при подключении. Это помогает сделать процесс входа в систему менее шумным, что, как правило, является хорошей практикой.

AcceptEnv LANG LC_*

  • Разрешает передавать переменные окружения, связанные с локалью, такие как язык (LANG) и локаль (LC_*). Это полезно, если вы хотите, чтобы на сервере поддерживался правильный язык/региональные настройки для пользователей.

Subsystem sftp /usr/lib/openssh/sftp-server

  • Указывает путь к исполняемому файлу для службы SFTP. Это необходимо для работы с удаленными файлами через протокол SFTP, если нужно передавать файлы на сервер.



Рекомендации по настройке для использования только SSH-ключей

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

  1. Отключить аутентификацию по паролю:
    • Измените строку PasswordAuthentication yes на:


      PasswordAuthentication no

  2. Отключить аутентификацию с помощью клавиатуры (если нужно):
    • Если вы хотите также отключить интерактивную аутентификацию, оставьте строку KbdInteractiveAuthentication no как есть, или сделайте ее:


      KbdInteractiveAuthentication no

  3. Отключить вход пользователя root:
    • Если вы хотите запретить вход с учетной записью root (что является хорошей практикой), измените строку:


      PermitRootLogin no

  4. Настроить использование только ключей SSH:
    • Убедитесь, что у вас настроены SSH-ключи для вашего пользователя. SSH-ключи обычно сохраняются в файле ~/.ssh/authorized_keys на сервере, и их наличие позволяет аутентификацию без пароля.
  5. Дополнительные рекомендации:
    • Отключить X11Forwarding: Если вам не нужно перенаправление X11 (например, для графических приложений), рекомендуется отключить его для повышения безопасности:


      X11Forwarding no

    • Отключить PAM, если не требуется: Если вы не используете специфические модули PAM, можно отключить их для упрощения конфигурации:


      UsePAM no

    • Ограничение доступа к SSH: Рассмотрите возможность ограничить доступ к серверу только с определенных IP-адресов, чтобы повысить безопасность. Это можно сделать через настройки брандмауэра (например, с использованием iptables).

Пример финальной конфигурации

Вот как может выглядеть ваш файл sshd_config после изменений:


Include /etc/ssh/sshd_config.d/*.conf PermitRootLogin no PasswordAuthentication no KbdInteractiveAuthentication no UsePAM no X11Forwarding no PrintMotd no AcceptEnv LANG LC_* Subsystem sftp /usr/lib/openssh/sftp-server

Перезапуск SSH демона

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


sudo systemctl restart sshd

Теперь ваш сервер будет использовать только аутентификацию по SSH-ключам, и доступ с использованием пароля будет запрещен.


Восстановление доступа к панели 3x-ui  установленного в docker контейнер или Где найти и посмотреть пароль к панели в базе данных 3x-ui
Докер 3x-ui