⟵ Все статьи
Читать на:

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

Вход на 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-ключу за несколько минут

Создать сервер

Мы используем файлы cookie: необходимые — для входа в аккаунт и языка интерфейса, аналитические — чтобы понимать, какими страницами пользуются. Сторонних рекламных систем у нас нет. Подробнее