Вход на VPS по SSH-ключу: создание, добавление и отключение пароля

Вход по паролю — самое слабое место в защите любого сервера. Боты непрерывно перебирают комбинации по словарям, и даже сложный пароль не даёт стопроцентной гарантии. SSH-ключи решают эту проблему принципиально: сервер принимает только того, у кого есть правильный приватный ключ, а подобрать его перебором практически невозможно. В этой инструкции мы пройдём весь путь — от заказа сервера до полного отключения парольного входа.
Шаг 1. Создаём VPS на NodexGo
Зайдите в панель управления NodexGo и нажмите кнопку «Создать сервер». Выберите локацию — рядом с каждой отображается реальный пинг до неё с вашего устройства, так удобнее выбрать ближайшую точку. Затем выберите подходящий тариф и образ операционной системы: для этой инструкции рекомендуем Ubuntu 24.04. Задайте имя сервера, выберите период оплаты — 1, 3, 6 или 12 месяцев — и подтвердите заказ. Через несколько минут сервер будет готов: IP-адрес и пароль root появятся в панели и придут на почту.
Запустите VPS за несколько минут и настройте SSH-ключи прямо сейчас
Создать серверШаг 2. Подключаемся к серверу по паролю
Пока SSH-ключ ещё не добавлен, подключаемся обычным способом — по паролю root из письма или панели. Откройте терминал (Terminal на macOS и Linux, PowerShell или Windows Terminal на Windows) и выполните команду:
ssh root@IP-адрес-сервераЕсли сервер только что создан, при первом подключении терминал спросит, доверять ли отпечатку хоста — введите yes. После успешного входа можно переходить к созданию ключей.
Шаг 3. Генерируем SSH-ключ на своём компьютере
Ключевую пару нужно создавать на вашем локальном компьютере, а не на сервере. Приватный ключ останется у вас, публичный — будет скопирован на сервер. Команда одинакова для Windows (PowerShell 7+ или встроенный OpenSSH), macOS и Linux:
ssh-keygen -t ed25519 -C "your_email@example.com"Утилита спросит, куда сохранить ключ — нажмите Enter, чтобы использовать путь по умолчанию (~/.ssh/id_ed25519 на macOS и Linux, C:\Users\ИмяПользователя\.ssh\id_ed25519 на Windows). Затем предложит задать парольную фразу (passphrase) — это дополнительный уровень защиты приватного ключа, рекомендуем не оставлять поле пустым. В результате будут созданы два файла: id_ed25519 (приватный ключ, никому не передавайте) и id_ed25519.pub (публичный ключ, который копируется на сервер).
Шаг 4. Добавляем публичный ключ на сервер
Самый быстрый способ — утилита ssh-copy-id. Она автоматически добавит публичный ключ в файл ~/.ssh/authorized_keys на сервере. На macOS и Linux выполните в локальном терминале:
ssh-copy-id -i ~/.ssh/id_ed25519.pub root@IP-адрес-сервераВ Windows утилита ssh-copy-id не входит в стандартный OpenSSH, поэтому используйте такую команду в PowerShell:
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh root@IP-адрес-сервера "cat >> ~/.ssh/authorized_keys"Если доступа по SSH нет или удобнее добавить ключ вручную, откройте карточку сервера → «Управление» → «VNC-доступ»: экран сервера откроется прямо в браузере. Введите логин root, нажмите в консоли кнопку «Ввести пароль» — она наберёт пароль root из карточки сервера — и затем Enter. Создайте папку для ключей и откройте файл:
mkdir -p ~/.ssh
nano ~/.ssh/authorized_keysНа своём компьютере скопируйте содержимое файла id_ed25519.pub (одна строка, начинается с «ssh-ed25519») и вставьте её в консоль кнопкой «Вставить». Сохраните файл (Ctrl+O, Enter, Ctrl+X) и выставьте права:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keysШаг 5. Проверяем вход по ключу
Прежде чем отключать парольный вход, убедитесь, что ключ работает. Откройте новое окно терминала и подключитесь к серверу — не закрывая текущую сессию. Если вы задавали passphrase, терминал попросит её ввести. Успешный вход без запроса пароля root означает, что ключ добавлен правильно и можно двигаться дальше.
ssh root@IP-адрес-сервераШаг 6. Отключаем вход по паролю
Теперь запретим SSH принимать пароли — это закроет сервер от брутфорс-атак. Откройте конфигурационный файл SSH-демона:
nano /etc/ssh/sshd_configНайдите следующие директивы и установите им указанные значения. Если строка закомментирована (начинается с #), уберите символ комментария:
PasswordAuthentication no
PermitRootLogin prohibit-password
PubkeyAuthentication yesВ Ubuntu 22.04 и 24.04 есть ещё каталог /etc/ssh/sshd_config.d/ — настройки из него важнее основного файла. Проверьте, что там не осталось разрешения на вход по паролю:
grep -ri passwordauthentication /etc/ssh/sshd_config.d/Если команда нашла строку PasswordAuthentication yes (чаще всего в файле 50-cloud-init.conf), замените yes на no в этом файле.
Сохраните файл (Ctrl+O, затем Enter, затем Ctrl+X в nano) и перезапустите SSH-демон, чтобы изменения вступили в силу:
systemctl restart sshНе закрывайте текущую SSH-сессию. Откройте новое окно терминала и снова попробуйте подключиться по ключу — убедитесь, что вход работает. Только после успешной проверки можно закрыть старую сессию. Если что-то пошло не так и вы потеряли доступ, воспользуйтесь web-консолью VNC в карточке сервера: она не зависит от SSH и позволяет исправить конфигурацию прямо в браузере. Запрет касается только SSH: в консоль можно по-прежнему войти под root с паролем из карточки сервера.
Дополнительные меры безопасности
После настройки ключей имеет смысл сменить стандартный порт SSH с 22 на любой другой выше 1024 — это снизит количество автоматических сканирований в логах. Директива для этого в sshd_config называется Port; сначала откройте новый порт в фаерволе. В Ubuntu 24.04 SSH запускается через ssh.socket, поэтому после смены порта выполните systemctl daemon-reload и systemctl restart ssh.socket. Также рекомендуем установить fail2ban: он автоматически блокирует IP-адреса после нескольких неудачных попыток входа, что актуально даже при отключённом парольном входе. Хранить приватный ключ стоит только на доверенных устройствах, а резервную копию держать в зашифрованном хранилище.
Если вы работаете с несколькими серверами, удобно создать файл ~/.ssh/config на локальном компьютере и прописать там псевдонимы для каждого хоста с указанием нужного ключа и пользователя. Это избавляет от необходимости каждый раз вводить полный адрес и флаги.
Заключение
Переход с парольной аутентификации на SSH-ключи — одна из первых вещей, которую стоит сделать сразу после получения нового сервера. Это занимает не более десяти минут, но кардинально повышает защищённость: брутфорс-атаки становятся бессмысленными, а случайная утечка пароля больше не угрожает доступу к машине. Если вы ещё не арендовали VPS, сделайте это на NodexGo — выберите тариф, образ Ubuntu 24.04 и сразу настройте ключи по этой инструкции.
Арендуйте VPS и настройте безопасный вход по SSH-ключу за несколько минут
Создать сервер