EQVPS

Как настроить аутентификацию по SSH-ключу на VPS

Замените вход по паролю на пару SSH-ключей: сгенерируйте ключ, скопируйте публичную половину на сервер, проверьте вход и отключите пароль. Самый большой выигрыш в безопасности для любого нового VPS — за несколько команд.

Вход по паролю — самое слабое место свежего сервера: боты сканируют интернет и круглосуточно долбят порт 22 подборами. Замена пароля на пару SSH-ключей полностью убирает эту поверхность атаки, и это первое, что стоит сделать на любом новом VPS. Вот весь процесс за несколько команд.

Как работают SSH-ключи

Вы генерируете пару: приватный ключ остаётся на вашем компьютере, публичный кладётся на сервер. Сервер проверяет любого подключающегося; ответить может только владелец соответствующего приватного ключа. Публичный ключ можно раздавать свободно — защищать нужно приватный.

1. Сгенерируйте пару ключей (на своём компьютере)

ssh-keygen -t ed25519 -C "you@example.com"
# нажмите Enter, чтобы принять путь по умолчанию (~/.ssh/id_ed25519)
# задайте passphrase для дополнительной защиты или оставьте пустым

Создаются два файла: ~/.ssh/id_ed25519 (приватный — не передавать) и ~/.ssh/id_ed25519.pub (публичный).

2. Скопируйте публичный ключ на сервер

Просто, если вход по паролю ещё работает:

ssh-copy-id root@YOUR.SERVER.IP

Нет ssh-copy-id? Сделайте вручную:

cat ~/.ssh/id_ed25519.pub | ssh root@YOUR.SERVER.IP \
  "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

3. Проверьте ключ, прежде чем что-либо менять

Откройте новый терминал и войдите — пароль сервера спрашивать не должны:

ssh root@YOUR.SERVER.IP

Если сработало, держите эту сессию открытой, пока делаете следующий шаг, чтобы ошибка не заблокировала вас.

4. Отключите вход по паролю

На сервере отредактируйте /etc/ssh/sshd_config:

sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
sudo systemctl restart ssh    # в некоторых дистрибутивах служба называется sshd

Теперь входит только ваш ключ, а постоянный шум перебора на порту 22 просто отскакивает.

Честные предостережения

Что дальше

SSH-ключ — шаг первый закалённого сервера. Дополните его файрволом — см. как настроить файрвол UFW и как настроить fail2ban — и пройдите полный чеклист безопасности нового VPS, прежде чем что-либо выставлять наружу. На VPS без KYC с оплатой криптой ключ — ещё и способ сохранить доступ по-настоящему своим.

Частые вопросы

Почему SSH-ключ лучше пароля?

Пароль можно угадать или подобрать перебором; боты постоянно долбят порт 22. Пару SSH-ключей подобрать практически невозможно, а после отключения входа по паролю попытки перебора просто отваливаются. Плюс это удобнее — вы входите без ввода пароля каждый раз.

В чём разница между публичным и приватным ключом?

Пара генерируется вместе. Приватный ключ (id_ed25519) остаётся на вашем компьютере и никогда не передаётся. Публичный ключ (id_ed25519.pub) копируется на сервер. Публичный ключ можно держать где угодно; войти может только соответствующий приватный, так что берегите именно его.

ed25519 или RSA — что генерировать?

ed25519 для всего современного: короче ключи, быстрее и безопасно. RSA (минимум 4096 бит) — только если надо подключаться к старым системам без поддержки ed25519. Команды ниже используют ed25519.

Что если я потеряю приватный ключ?

Вы теряете этот путь входа. Если вход по паролю ещё включён — войдите им и добавьте новый ключ; если отключён — зайдите через консоль провайдера (у EQVPS есть браузерная консоль) и добавьте новый публичный ключ. Держите бэкап приватного ключа и подумайте о втором ключе, чтобы потеря одного не стала блокировкой.

Безопасно ли полностью отключать вход по паролю?

Да — после того как ключ заработал и вы убедились, что можете войти по нему. Проверьте ключ во втором терминале, прежде чем закрывать текущую сессию, чтобы ошибка не заблокировала вас. После этого отключение паролей убирает всю поверхность атаки перебором.

Комментарии

Пока нет комментариев. Будьте первым.

Оставить комментарий

Комментарии проходят модерацию перед публикацией.