SSH-ключи: безопасный вход на VPS без пароля

Безопасность · 01.08.2025
SSH-ключи: безопасный вход на VPS без пароля

SSH-ключи используют криптографию с открытым ключом. У вас есть два файла: приватный ключ (хранится у вас) и публичный ключ (размещается на сервере). Никакой пароль не передаётся по сети.

Генерация ключей (Linux / Mac)

# Современный алгоритм Ed25519 (рекомендуется)
ssh-keygen -t ed25519 -C "your@email.com"

# Или RSA-4096 для совместимости
ssh-keygen -t rsa -b 4096 -C "your@email.com"

# Ключи сохранятся в ~/.ssh/
# ~/.ssh/id_ed25519      ← приватный (НИКОМУ не передавать)
# ~/.ssh/id_ed25519.pub  ← публичный (можно размещать везде)

Добавление ключа на сервер

# Автоматически (самый простой способ)
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server-ip

# Или вручную:
cat ~/.ssh/id_ed25519.pub | ssh user@server-ip   "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

Генерация ключей в Windows (PuTTYgen)

  1. Скачайте PuTTYgen с официального сайта PuTTY
  2. Выберите EdDSA или RSA (4096 бит)
  3. Нажмите Generate и двигайте мышью
  4. Сохраните приватный ключ (Save private key)
  5. Скопируйте публичный ключ из текстового поля вверху
  6. Добавьте его в ~/.ssh/authorized_keys на сервере

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

⚠️ Выполняйте только убедившись, что вход по ключу работает! Иначе потеряете доступ к серверу.
sudo nano /etc/ssh/sshd_config

# Изменить или добавить:
PasswordAuthentication no
PubkeyAuthentication yes
PermitRootLogin prohibit-password

sudo systemctl restart sshd
✅ После настройки SSH-ключей атаки перебором паролей становятся бессмысленными — сервер просто не примет пароль.
← Назад в базу знаний Задать вопрос поддержке