Welcome Notice

Edit in Style Properties -> Page Setup: "Welcome notice"

Регистрация Войти

Конец эпохи паролей: настраиваем FIDO2/Passkeys для SSH-доступа к серверам в 2026

pisula

Начинающий
Сообщения
7
Счётчик реакций
0
Если вы всё ещё подключаетесь к своим серверам по SSH с паролем или даже по RSA-ключу — этот материал для вас. Год 2026 на дворе, и пора переходить на современные, взломоустойчивые методы аутентификации.

В этом руководстве я покажу, как полностью отказаться от паролей и даже от файлов с приватными ключами, перейдя на аппаратные ключи FIDO2 (YubiKey, Nitrokey, Google Titan) или Passkeys — тот же стандарт, который вы уже используете для входа в Google или GitHub.

[h3]Зачем это нужно? Или «Что не так с моим RSA-ключом?»[/h3]
  1. Абсолютная устойчивость к фишингу. Ключ FIDO2 физически привязан к домену (вашему серверу).
  2. Защита от краж приватных ключей. Ваш приватный ключ никогда не покидает аппаратный токен.
  3. Требует физического присутствия. Для подключения нужно либо нажать кнопку на ключе, либо ввести PIN-код.
  4. Это будущее. Крупные облачные провайдеры уже активно продвигают FIDO2.

[h3]Часть 1. Быстрый старт: Настраиваем SSH с FIDO2 за 5 минут[/h3]
Предпосылки:
  • Аппаратный ключ FIDO2 (поддерживающий стандарт ed25519-sk).
  • Сервер и клиент с OpenSSH 8.2+.
  • На клиенте: libfido2 (пакет libfido2-dev).

Шаг 1: Генерируем пару ключей на токене
Код:
ssh-keygen -t ed25519-sk -f ~/.ssh/id_ed25519_sk -C "yubikey-$(date +%Y-%m)"

Шаг 2: Копируем открытый ключ на сервер
Код:
ssh-copy-id -i ~/.ssh/id_ed25519_sk.pub user@your-server.com

Шаг 3: Подключаемся
Код:
ssh -i ~/.ssh/id_ed25519_sk user@your-server.com
Система запросит касание ключа или PIN-код. Готово!

[h3]Часть 2. Продвинутая настройка: Resident Keys (RK) и удобство[/h3]
Resident Key — это специальный режим, при котором открытый ключ хранится прямо на токене.

Генерация Resident Key:
Код:
ssh-keygen -t ed25519-sk -f ~/.ssh/id_ed25519_sk_resident -O resident -C "yubikey-resident-$(hostname)"

[h3]Часть 3. А если нет аппаратного ключа? Используем Passkeys![/h3]
Passkeys — это реализация FIDO2, где роль «токена» играет ваш компьютер или телефон.

Пример настройки (через программный токен):
Код:
ssh-keygen -t ed25519-sk -f ~/.ssh/id_passkey -O resident -O verify-required -O application=/tmp/soft-token

[h3]Часть 4. Настройка сервера: ужесточаем политики[/h3]
Добавьте в /etc/ssh/sshd_config:
Код:
# Отключаем парольную аутентификацию полностью
PasswordAuthentication no
ChallengeResponseAuthentication no

# Разрешаем только современные методы
PubkeyAuthentication yes
AuthenticationMethods publickey

# Только безопасные алгоритмы
HostKeyAlgorithms ssh-ed25519,ssh-ed25519-cert-v01@openssh.com
KexAlgorithms sntrup761x25519-sha512@openssh.com,curve25519-sha256

Перезагрузите SSH: sudo systemctl reload sshd

[h3]Часть 5. Аварийный доступ (ОБЯЗАТЕЛЬНО!)[/h3]
Прежде чем отключать старые методы, настройте аварийный доступ:
  1. Резервный аппаратный ключ: Настройте второй ключ FIDO2, храните его в сейфе.
  2. Сессия в консоли облачного провайдера: Убедитесь, что у вас есть доступ через веб-консоль (AWS, Google Cloud).
  3. Физический доступ: Имейте план, если сервер находится в дата-центре.

[h3]Заключение и вопросы[/h3]
Переход на FIDO2 для SSH — не «оптимизация», а смена парадигмы безопасности. Это шаг от «удобного, но уязвимого» к «безопасному по умолчанию».

Вопросы для обсуждения:
  1. Пробовали ли вы настраивать FIDO2 для SSH? С какими трудностями столкнулись?
  2. Что думаете о Passkeys как альтернативе «железным» ключам? Доверяете ли вы программным токенам?
  3. Как вы организуете аварийный доступ к серверам? Есть ли у вас «золотой ключ»?
  4. Считаете ли вы, что пароли и файлы ключей должны быть официально объявлены устаревшими?

Жду ваших практических отзывов и кейсов в комментариях!
 
Вверх