Настройка аутентификации по SSH-ключу на сервере

Руководство по созданию и управлению SSH-ключами для безопасного входа на сервер.

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

Генерация пары ключей

  1. Откройте терминал на вашем компьютере (macOS/Linux — Терминал, Windows — PowerShell или Git Bash).
  2. Выполните команду для создания ключей (рекомендуется современный алгоритм Ed25519):
ssh-keygen -t ed25519 -C "your_email@example.com"

Примечание

Если ваша система не поддерживает Ed25519 (очень старые ОС), используйте RSA: ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

  1. Программа предложит указать путь сохранения (по умолчанию ~/.ssh/id_ed25519 — нажмите Enter).
  2. Введите passphrase (секретную фразу) или оставьте пустой (Enter два раза).
  3. Ключи будут созданы в папке ~/.ssh:
    • id_ed25519 — приватный ключ (никому не передавайте!).
    • id_ed25519.pub — публичный ключ (его копируем на сервер).

Копирование публичного ключа на сервер

  1. Подключитесь к серверу по SSH (пока с паролем):
ssh root@ваш_IP
  1. Создайте папку .ssh (если её нет):
mkdir -p ~/.ssh
chmod 700 ~/.ssh
  1. Добавьте публичный ключ в файл authorized_keys:
echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... your_email@example.com" >> ~/.ssh/authorized_keys

Или скопируйте ключ одной командой с вашего компьютера (рекомендуется):

ssh-copy-id -i ~/.ssh/id_ed25519.pub root@ваш_IP

Настройка сервера OpenSSH

  1. Откройте конфигурационный файл:
nano /etc/ssh/sshd_config
  1. Убедитесь, что включена авторизация по ключам и отключена по паролю (рекомендуется):
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
PasswordAuthentication no
  1. Сохраните изменения (Ctrl+O → Enter → Ctrl+X).
  2. Установите правильные права на файлы:
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chown root:root ~/.ssh/authorized_keys
  1. Перезапустите SSH-сервер:
systemctl restart sshd

Настройка SSH-клиента (для удобства)

  1. Создайте или отредактируйте файл ~/.ssh/config на вашем компьютере:
Host my-server
    HostName ваш_IP
    User root
    IdentityFile ~/.ssh/id_ed25519
    Port 22
  1. Установите права:
chmod 600 ~/.ssh/config

Теперь подключение упрощается до:

ssh my-server

Проверка

Попробуйте подключиться без пароля:

ssh root@ваш_IP

Если вход произошёл без запроса пароля — авторизация по ключу настроена успешно.

Помощь

Если у вас возникли вопросы или требуется помощь, пожалуйста, свяжитесь с нами через систему тикетов — мы обязательно вам поможем!

Нужна помощь?Наши инженеры бесплатно помогут с любым вопросом за считанные минутыНаписать нам