GHOSTVPS / Безопасность

Защита SSH на Ubuntu VPS

Проверьте отдельного администратора и SSH-ключ до отключения паролей и входа root.

Обновлено · GhostVPS

Перед началом

Ubuntu 24.04 с OpenSSH, sudo, терминал Linux/macOS/WSL и проверенный путь восстановления. Пример предназначен только для ключей, не для MFA, централизованной авторизации или правил Match. Не закрывайте текущий сеанс; замените пример IP и порт.

Подготовьте администратора

Используйте проверенную учётную запись sudo или создайте deploy командами ниже. Если такое имя уже есть, сначала проверьте его. Задайте надёжный пароль. Перед передачей данных проверьте отпечаток сервера через доверенный канал.

Ваш VPS · терминал Linux

sudo adduser deploy
sudo usermod -aG sudo deploy
Подготовьте администратора. Запись из изолированного контейнера Ubuntu 24.04. localhost — учебный сервер; используйте адрес своей услуги. Временная учётная запись создана с отключённым паролем; перед тестом надёжный пароль установлен приватно. На своём VPS используйте интерактивный adduser из инструкции.
Подготовьте администратора. Запись из изолированного контейнера Ubuntu 24.04. localhost — учебный сервер; используйте адрес своей услуги. Временная учётная запись создана с отключённым паролем; перед тестом надёжный пароль установлен приватно. На своём VPS используйте интерактивный adduser из инструкции.

Создайте отдельный ключ на своём компьютере

Если ghostvps_admin уже существует, выберите другое имя файла: не перезаписывайте рабочий ключ. Задайте парольную фразу. Копируйте на сервер только открытый ключ .pub. Закрытый ключ остаётся на вашем компьютере, не в переписке.

Ваш компьютер · терминал

ssh-keygen -t ed25519 -f ~/.ssh/ghostvps_admin
ssh-copy-id -i ~/.ssh/ghostvps_admin.pub deploy@203.0.113.10
Создайте отдельный ключ на своём компьютере. Запись из изолированного контейнера Ubuntu 24.04. localhost — учебный сервер; используйте адрес своей услуги.
Создайте отдельный ключ на своём компьютере. Запись из изолированного контейнера Ubuntu 24.04. localhost — учебный сервер; используйте адрес своей услуги.

Проверьте вход по ключу и sudo

Откройте отдельный сеанс командой, разрешающей только ключ. Запрос парольной фразы ключа нормален; возврат к паролю аккаунта запрещён параметрами команды. В новом сеансе проверьте sudo -v. При любой неудаче остановитесь.

Ваш компьютер · терминал

ssh -i ~/.ssh/ghostvps_admin -o PreferredAuthentications=publickey -o PasswordAuthentication=no deploy@203.0.113.10

Ваш VPS · терминал Linux

sudo -v
Проверьте вход по ключу и sudo. Запись из изолированного контейнера Ubuntu 24.04. localhost — учебный сервер; используйте адрес своей услуги.
Проверьте вход по ключу и sudo. Запись из изолированного контейнера Ubuntu 24.04. localhost — учебный сервер; используйте адрес своей услуги.

Создайте отдельный файл настроек

Только после проверки создайте указанный файл, если его ещё нет, и вставьте четыре строки. Для большинства параметров OpenSSH действует первое найденное значение; Ubuntu рано читает файлы snippets. Более ранние настройки и Match могут изменить результат.

Ваш VPS · терминал Linux

sudoedit /etc/ssh/sshd_config.d/00-ghostvps-hardening.conf

Содержимое файла

PubkeyAuthentication yes
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin no
Создайте отдельный файл настроек. Запись из изолированного контейнера Ubuntu 24.04. localhost — учебный сервер; используйте адрес своей услуги.
Создайте отдельный файл настроек. Запись из изолированного контейнера Ubuntu 24.04. localhost — учебный сервер; используйте адрес своей услуги.

Проверьте синтаксис и результат

Проверьте синтаксис и фактические настройки: pubkeyauthentication — yes, три остальных — no. Не применяйте настройки при ошибке или неожиданном значении. При использовании Match дополнительно проверьте конкретного пользователя и адрес через sshd -T -C.

Ваш VPS · терминал Linux

sudo /usr/sbin/sshd -t
sudo /usr/sbin/sshd -T | grep -E '^(pubkeyauthentication|passwordauthentication|kbdinteractiveauthentication|permitrootlogin) '
Проверьте синтаксис и результат. Запись из изолированного контейнера Ubuntu 24.04. localhost — учебный сервер; используйте адрес своей услуги.
Проверьте синтаксис и результат. Запись из изолированного контейнера Ubuntu 24.04. localhost — учебный сервер; используйте адрес своей услуги.

Перезагрузите настройки и проверьте доступ

После успешных проверок перечитайте настройки ssh и откройте ещё один новый сеанс по ключу. Снова проверьте sudo, затем закрывайте старый сеанс. При отказе восстановите прежние настройки через оставшийся сеанс или доступ восстановления, выполните sshd -t и перечитайте настройки. Межсетевой экран не меняется.

Ваш VPS · терминал Linux

sudo systemctl reload ssh

Ваш компьютер · терминал

ssh -i ~/.ssh/ghostvps_admin deploy@203.0.113.10
Перезагрузите настройки и проверьте доступ. В контейнере нет systemd: изолированный SSH перезагружен сигналом SIGHUP, затем проверен новый вход по ключу. На VPS с systemd используйте команду systemctl из инструкции.
Перезагрузите настройки и проверьте доступ. В контейнере нет systemd: изолированный SSH перезагружен сигналом SIGHUP, затем проверен новый вход по ключу. На VPS с systemd используйте команду systemctl из инструкции.

Официальные источники