// server management

Аутентификация по SSH-ключам на Linux VPS: полное руководство

August 13, 2026 · by CLIQHOST

Аутентификация по SSH-ключам на Linux VPS: полное руководство

Парольная аутентификация по SSH — одна из самых распространённых точек входа для злоумышленников. Боты непрерывно сканируют интернет в поисках открытого порта 22 и за секунды перебирают тысячи комбинаций логин/пароль (brute-force атаки). Надёжная и удобная альтернатива — аутентификация по SSH-ключам: криптографический механизм, который рекомендуют все системные администраторы.

В этом руководстве мы пройдём весь процесс — от генерации пары ключей до отключения парольной аутентификации — применительно к любому Linux-серверу, будь то VPS NVMe или выделенный сервер.


Что такое аутентификация по SSH-ключам?

SSH поддерживает два основных метода аутентификации:

  • По паролю — просто, но уязвимо к перебору.
  • По паре ключей — закрытый ключ (хранится на вашем компьютере) и открытый ключ (копируется на сервер). Сервер проверяет вашу личность, не передавая пароль по сети.

Закрытый ключ можно дополнительно защитить парольной фразой (passphrase), что добавляет второй фактор защиты.


Шаг 1: Генерация пары SSH-ключей на локальном компьютере

Откройте терминал на своём компьютере (Linux, macOS или WSL в Windows) и выполните:

ssh-keygen -t ed25519 -C "[email protected]"

Почему ed25519? Это современный алгоритм — более короткие ключи при более высокой безопасности по сравнению с RSA-2048/4096. На очень старых серверах используйте ssh-keygen -t rsa -b 4096.

Команда запросит:
1. Путь к файлу — нажмите Enter для пути по умолчанию (~/.ssh/id_ed25519).
2. Парольную фразу — рекомендуется установить; защищает закрытый ключ при несанкционированном доступе к компьютеру.

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


Шаг 2: Копирование открытого ключа на сервер

Метод 1 — ssh-copy-id (рекомендуется для Linux/macOS)

ssh-copy-id -i ~/.ssh/id_ed25519.pub пользователь@IP_СЕРВЕРА

Команда подключится по текущему паролю, автоматически создаст ~/.ssh/authorized_keys и добавит ключ.

Метод 2 — Вручную (Windows или при отсутствии ssh-copy-id)

# Выведите открытый ключ и скопируйте его
cat ~/.ssh/id_ed25519.pub

На сервере, под вашим пользователем:

mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys
# Вставьте содержимое открытого ключа, сохраните
chmod 600 ~/.ssh/authorized_keys

Шаг 3: Проверьте аутентификацию по ключу

До отключения парольной аутентификации откройте новый терминал и проверьте подключение:

ssh -i ~/.ssh/id_ed25519 пользователь@IP_СЕРВЕРА

Если вы подключились без пароля (или с парольной фразой ключа) — всё работает. Не закрывайте текущую сессию до подтверждения!

IP-адрес вашего VPS SSD в CLIQHOST доступен в панели управления клиента.


Шаг 4: Отключение парольной аутентификации в sshd_config

Это ключевой шаг. Отредактируйте конфигурационный файл SSH:

sudo nano /etc/ssh/sshd_config

Найдите и измените (или добавьте) следующие директивы:

PasswordAuthentication no
PubkeyAuthentication yes
PermitEmptyPasswords no
ChallengeResponseAuthentication no

В Ubuntu 22.04+ проверьте также файлы в /etc/ssh/sshd_config.d/ — они могут переопределять основные настройки:

grep -r 'PasswordAuthentication' /etc/ssh/sshd_config.d/

После изменений перезапустите службу SSH:

sudo systemctl restart sshd

Шаг 5: Дополнительные параметры безопасности в sshd_config

Пока вы работаете с файлом, примените следующие рекомендации:

# Запрет прямого входа под root
PermitRootLogin no

# Ограничение пользователей, которым разрешён SSH-доступ
AllowUsers ваш_пользователь

# Смена стандартного порта (опционально, снижает шум в логах)
Port 2222

# Тайм-аут при бездействии
ClientAliveInterval 300
ClientAliveCountMax 2

Важно при смене порта: сначала обновите правила файрвола, иначе заблокируете себя!

# UFW
sudo ufw allow 2222/tcp

# iptables
sudo iptables -A INPUT -p tcp --dport 2222 -j ACCEPT

Для комплексного управления файрволом и безопасностью сервера воспользуйтесь нашим сервисом администрирования серверов.


Шаг 6: Управление ключами для нескольких пользователей или серверов

Файл ~/.ssh/config на локальном компьютере

Если вы администрируете несколько серверов, создайте конфигурационный файл для упрощения подключения:

# ~/.ssh/config
Host vps-prod
    HostName 185.x.x.x
    User adminuser
    Port 2222
    IdentityFile ~/.ssh/id_ed25519

Host vps-dev
    HostName 185.x.x.y
    User devuser
    Port 22
    IdentityFile ~/.ssh/id_ed25519_dev

Теперь достаточно выполнить:

ssh vps-prod

Ротация ключей

Регулярно (раз в год или при смене команды) генерируйте новый ключ, добавляйте его в authorized_keys и удаляйте старый. Не оставляйте неиспользуемые ключи на сервере.


Управление ключами в команде администраторов

На управляемом выделенном сервере, где работает команда, у каждого администратора должна быть своя пара ключей. Ключи добавляются в authorized_keys по одному на строку:

# authorized_keys — каждая строка = один открытый ключ
ssh-ed25519 AAAA...ключ_admin1... [email protected]
ssh-ed25519 AAAA...ключ_admin2... [email protected]

Когда администратор покидает команду, просто удалите соответствующую строку — сбрасывать ключи всего сервера не нужно.


Устранение распространённых проблем

«Permission denied (publickey)»

  1. Проверьте права доступа:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
  1. Убедитесь, что открытый ключ записан в authorized_keys одной строкой без переносов.
  2. Используйте verbose-режим для диагностики: ssh -vvv пользователь@сервер

SELinux блокирует SSH (CentOS/RHEL/AlmaLinux)

restorecon -Rv ~/.ssh

Случайно заблокировали себя

Если вы отключили пароль, а ключ не работает, воспользуйтесь VNC-консолью VPS в панели управления CLIQHOST или обратитесь в службу поддержки — доступ можно восстановить на уровне гипервизора.


SSH Agent: удобство при использовании парольной фразы

Если на ключе установлена парольная фраза (правильное решение!), не нужно вводить её при каждом подключении — SSH Agent хранит её в памяти на время сессии:

# Запуск агента
eval "$(ssh-agent -s)"

# Добавление ключа (парольная фраза вводится один раз)
ssh-add ~/.ssh/id_ed25519

На macOS ключ можно сохранить в Keychain: ssh-add --apple-use-keychain ~/.ssh/id_ed25519


Чеклист: аутентификация по SSH-ключам

  • [ ] Пара ключей сгенерирована с алгоритмом ed25519
  • [ ] Открытый ключ скопирован в ~/.ssh/authorized_keys на сервере
  • [ ] Подключение успешно протестировано в новом терминале
  • [ ] PasswordAuthentication no установлено в sshd_config
  • [ ] PermitRootLogin no включено
  • [ ] Файрвол обновлён (если изменён порт)
  • [ ] Служба SSH перезапущена
  • [ ] Старые и неиспользуемые ключи удалены

Заключение

Аутентификация по SSH-ключам — одна из наиболее эффективных мер безопасности, которую можно применить на Linux-сервере. Настройка занимает 10–15 минут и практически исключает риск брутфорс-атак на SSH.

Если ваш проект работает на высокопроизводительном VPS NVMe или на выделенном сервере, защита SSH-доступа — первый шаг к комплексной стратегии безопасности.

Не уверены, как правильно настроить сервер? Команда CLIQHOST предоставляет полный спектр услуг по администрированию Linux-серверов — от первоначального hardening до непрерывного мониторинга. Свяжитесь с нами — настроим ваш сервер по лучшим стандартам безопасности.

SHARE
// Что говорят наши клиенты

Что говорят наши клиенты

Реальные отзывы клиентов, которые доверяют CLIQHOST за производительность, надёжность и профессиональную техническую поддержку.

★★★★★

"We moved our online shop from a foreign host and the difference is night and day — pages load instantly and support replies in minutes, in Romanian."

AM
Andrei M.
eCommerce owner · Chișinău
★★★★★

"Migrated 12 client sites to CLIQHOST. Free migration, zero downtime, and the cPanel setup is exactly what my team needed. Highly recommend."

EV
Elena V.
Web agency · Bălți
★★★★★

"Our NVMe VPS handles traffic spikes without a sweat. Full root, local datacenter, and billing in MDL — everything we wanted from a provider."

DC
Dmitri C.
SaaS founder · Chișinău