Управление виртуальным сервером осуществляется с помощью командной строки. Для этих целей будем использовать SSH-клиент Termius.После покупки vps обычно вы получаете пароль от рута и ip адрес вашего севера, используйте их для входа.
ssh root@your_ip
Подключаемся на сервер, нажимаем yes и вводим пароль. И начинаем последовательно вводить команды:
###### ЗАЩИТА SSH
# Обновление списка пакетовapt update# Обновление всех пакетов до актуальных версийapt upgrade -y# Смена пароля rootpasswd root### Ввод нового пароля для root# Добавление нового пользователяadduser user#### Ввод пароля для user# Добавляем пользователя user в группу sudousermod -aG sudo user# Устанавливаем редактор nano, если не установленapt install nano -y# Открываем конфиг SSH-сервераnano /etc/ssh/sshd_config
# Находим строку #Port 22, расскомментируем и устанавливаем кастомный порт, например 2222# Рекомендуется выбрать порт из диапазона 1024–49151, например, 47122.# Находим строку PermitRootLogin yes и меняем на PermitRootLogin no — запрещаем вход по SSH для root.# Сохраняем файл: нажимаем CTRL+O и затем ENTER для подтверждения.# Закрываем файл с помощью CTRL+X.
# Перезапуск службы SSHsystemctl restart ssh# Переход на пользователя usersu - user# Создание директории .ssh для ключейmkdir -p ~/.ssh# Установка прав доступа на директорию .sshchmod 700 ~/.ssh# Создаем/открываем файл authorized_keys в редакторе nanonano ~/.ssh/authorized_keys
# Создаем пару ключей для SSHssh-keygen -t ed25519 -C "mykey"
### Нажимаем Enter, чтобы сохранить ключи в стандартное место и под стандартными именами### Придумываем и вводим пароль для защиты приватного ключа SSH### Создаются два файла:### id_ed25519.pub — публичный ключ### id_ed25519 — приватный ключ, его нужно хранить в секрете
# Выводим содержимое публичного ключаcat ~/.ssh/id_ed25519.pub### Копируем этот ключ и вставляем его на сервере в файл ~/.ssh/authorized_keys### Сохраняем файл, для сохранения нажимаем CTRL+O и затем ENTER# Установка прав на файл authorized_keyschmod 600 ~/.ssh/authorized_keys# Открываем конфигурацию SSH, пишем sudo, так как нужны права администратораsudo nano /etc/ssh/sshd_config### Вводим пароль пользователя user### Находим строку #PasswordAuthentication yes и меняем на PasswordAuthentication no### Сохраняем файл, для сохранения нажимаем CTRL+O и затем ENTER# Перезапуск службы SSHsudo systemctl restart ssh# Выходим из-под пользователя userexit# Закрываем терминалexit### Меняем порт SSH в клиенте на тот, который указали### Меняем пользователя на user### Убираем пароль и выбираем авторизацию по ключу### Создаем ключ в клиенте, в поле label пишем любое название### В поле Private Key необходимо вставить приватный ключ### Идем в терминал клиента (например, на Windows) и выводим в терминал приватный ключ# Выводим в терминал приватный ключcat ~/.ssh/id_ed25519### Копируем приватный ключ и вставляем в клиент SSH в поле Private Key### Жмем connect, при запросе passphrase вводим пароль от нашего ключа### Вуаля, у нас работает вход по ключу!
УСТАНОВКА 2FA GOOGLE ДЛЯ SSH
###### УСТАНОВКА 2FA GOOGLE ДЛЯ SSH
# Устанавливаем пакет для двухфакторной аутентификации от Googlesudo apt install libpam-google-authenticator -y
# Открываем конфиг SSH-сервераsudo nano /etc/ssh/sshd_config### Находим строку #PasswordAuthentication no и меняем на PasswordAuthentication yes### Сохраняем файл, для сохранения нажимаем CTRL+O и затем ENTER# Перезапуск службы SSHsudo systemctl restart ssh# Настраиваем Google Authenticatorgoogle-authenticator### Сканируем QR-код или вручную добавляем секретный ключ в приложение Google Authenticator### Вводим временный код из приложения в терминале для завершения настройки### Сохраняем резервные коды и отвечаем на вопросы по своему усмотрению (обычно вводим 'y' для активации функций безопасности)
# Открываем конфиг PAM для SSHsudo nano /etc/pam.d/sshd### Находим строку @include common-auth и ниже добавляем auth required pam_google_authenticator.so# Открываем конфиг SSHsudo nano /etc/ssh/sshd_config### Ищем строку KbdInteractiveAuthentication no и меняем на KbdInteractiveAuthentication yes### Проверяем, что UsePAM yes присутствует в конфигурации### Сохраняем файл, для сохранения нажимаем CTRL+O и затем ENTER# Перезагрузка сервера для применения настроекsudo reboot
### Теперь возможен доступ либо по приватному ключу, либо с использованием пароля + 2FA