Отключение парольной аутентификации на 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-ключи, нужно внести следующие изменения:
- Отключить аутентификацию по паролю:
- Измените строку PasswordAuthentication yes на:
PasswordAuthentication no
- Измените строку PasswordAuthentication yes на:
- Отключить аутентификацию с помощью клавиатуры (если нужно):
- Если вы хотите также отключить интерактивную аутентификацию, оставьте строку KbdInteractiveAuthentication no как есть, или сделайте ее:
KbdInteractiveAuthentication no
- Если вы хотите также отключить интерактивную аутентификацию, оставьте строку KbdInteractiveAuthentication no как есть, или сделайте ее:
- Отключить вход пользователя root:
- Если вы хотите запретить вход с учетной записью root (что является хорошей практикой), измените строку:
PermitRootLogin no
- Если вы хотите запретить вход с учетной записью root (что является хорошей практикой), измените строку:
- Настроить использование только ключей SSH:
- Убедитесь, что у вас настроены SSH-ключи для вашего пользователя. SSH-ключи обычно сохраняются в файле ~/.ssh/authorized_keys на сервере, и их наличие позволяет аутентификацию без пароля.
- Дополнительные рекомендации:
- Отключить X11Forwarding: Если вам не нужно перенаправление X11 (например, для графических приложений), рекомендуется отключить его для повышения безопасности:
X11Forwarding no
- Отключить PAM, если не требуется: Если вы не используете специфические модули PAM, можно отключить их для упрощения конфигурации:
UsePAM no
- Ограничение доступа к SSH: Рассмотрите возможность ограничить доступ к серверу только с определенных IP-адресов, чтобы повысить безопасность. Это можно сделать через настройки брандмауэра (например, с использованием iptables).
- Отключить X11Forwarding: Если вам не нужно перенаправление X11 (например, для графических приложений), рекомендуется отключить его для повышения безопасности:
Пример финальной конфигурации
Вот как может выглядеть ваш файл 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-ключам, и доступ с использованием пароля будет запрещен.