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 є браузерна консоль) і додайте новий публічний ключ. Тримайте бекап приватного ключа й подумайте про другий ключ, щоб втрата одного не стала блокуванням.

Чи безпечно повністю вимикати вхід за паролем?

Так — після того як ключ запрацював і ви переконалися, що можете увійти ним. Перевірте ключ у другому терміналі, перш ніж закривати поточну сесію, щоб помилка не заблокувала вас. Після цього вимкнення паролів прибирає всю поверхню атаки перебором.

Коментарі

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

Залишити коментар

Коментарі проходять модерацію перед публікацією.