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

Создайте отдельный ключ на своём компьютере
Если ghostvps_admin уже существует, выберите другое имя файла: не перезаписывайте рабочий ключ. Задайте парольную фразу. Копируйте на сервер только открытый ключ .pub. Закрытый ключ остаётся на вашем компьютере, не в переписке.
Ваш компьютер · терминал
ssh-keygen -t ed25519 -f ~/.ssh/ghostvps_admin
ssh-copy-id -i ~/.ssh/ghostvps_admin.pub deploy@203.0.113.10

Проверьте вход по ключу и sudo
Откройте отдельный сеанс командой, разрешающей только ключ. Запрос парольной фразы ключа нормален; возврат к паролю аккаунта запрещён параметрами команды. В новом сеансе проверьте sudo -v. При любой неудаче остановитесь.
Ваш компьютер · терминал
ssh -i ~/.ssh/ghostvps_admin -o PreferredAuthentications=publickey -o PasswordAuthentication=no deploy@203.0.113.10
Ваш VPS · терминал Linux
sudo -v

Создайте отдельный файл настроек
Только после проверки создайте указанный файл, если его ещё нет, и вставьте четыре строки. Для большинства параметров OpenSSH действует первое найденное значение; Ubuntu рано читает файлы snippets. Более ранние настройки и Match могут изменить результат.
Ваш VPS · терминал Linux
sudoedit /etc/ssh/sshd_config.d/00-ghostvps-hardening.conf
Содержимое файла
PubkeyAuthentication yes
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin no

Проверьте синтаксис и результат
Проверьте синтаксис и фактические настройки: 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) '

Перезагрузите настройки и проверьте доступ
После успешных проверок перечитайте настройки ssh и откройте ещё один новый сеанс по ключу. Снова проверьте sudo, затем закрывайте старый сеанс. При отказе восстановите прежние настройки через оставшийся сеанс или доступ восстановления, выполните sshd -t и перечитайте настройки. Межсетевой экран не меняется.
Ваш VPS · терминал Linux
sudo systemctl reload ssh
Ваш компьютер · терминал
ssh -i ~/.ssh/ghostvps_admin deploy@203.0.113.10



