Демистификация типов ключей SSH: от RSA до ED25519

Демистификация типов ключей SSH: от RSA до ED25519

23 июля 2025 г.

Secure Shell (SSH) - это основание безопасного удаленного доступа - но с таким количеством ключевых алгоритмов на выбор, какой из них вы должны использовать? Давайте пройдемся по истории, торговле и современному сладкому месту для большинства пользователей.


Почему ключи SSH имеют значение сегодня

Вы, вероятно, напечаталиssh user@serverДесятки раз, но знаете ли вы, что происходит под капюшоном? Алгоритмы ключей SSH не просто академические: они определяют, насколько быстро находятся ваши связи, насколько они устойчивы к будущим атакам (подумайте о кванторе!), И даже о том, может ли ваш трубопровод CI может разговаривать с GitHub без зацепления.

В этом руководстве вы узнаете:

  • Почемуасимметричный крипторуб
  • Плюсы и минусыRSAВDSAВECDSA, иED25519
  • Pro TipsДля выбора и создания клавиш на Linux/MacOS

Асимметричное шифрование SSH

  • Аутентификация и обмен ключамиSSH использует вашу публичную/частную пару ключей длязнакСлучайная задача - без общих паролей, летящих над проволокой.
  • Шифрование сеансаКак только вы попадете, SSH договаривается о быстрого симметричного шифра (AES, Chacha20) для основной части данных.

Совет профессионала:Всегда используйте SSH -2 (единственный поддерживаемый протокол с 1998 года) и отключить слабые шифры в вашемsshd_configПолем


Удобные флаги Openssh

ssh-keygen -o -a 100 -b <bits> -t <type> -C "you@example.com"
  • -o: Bcrypt -защищенный формат личного ключа
  • -a 100: Увеличьте раунды PassFrase KDF на быстрых машинах
  • -b <bits>: Размер ключей (игнорируется для ED25519)
  • -C "<comment>": аннотация вauthorized_keys

RSA: классическая рабочая лошадка

Обзор:«Rivest - Shamir - Adleman» полагается на факторинг большогоn = p · qПолем Все еще везде благодаря устаревшим системам.

Когда его использовать:

  • Совместимость со старыми устройствами или строгими режимами соответствия
  • Когда вам нужен знакомый план резервного копирования

Создайте ключ 4096 -бит:

ssh-keygen -t rsa -b 4096 -o -a 100 -C "you@example.com"

Как это работает:

  1. Выберите два больших простых числаpиqПолем
  2. Вычислятьn = p · qиphi(n) = (p - 1) · (q - 1)Полем
  3. Выбиратьe, вычислитьdкакe · d ≡ 1 (mod phi(n))Полем
  4. Шифровать сc = m^e mod n; дешифтирует сm = c^d mod nПолем

Безопасность:

  • Текущая маржа:3072+битовые ключи сегодня безопасны.
  • Будущая угроза:Квантовые компьютеры могут запускать алгоритм Шора и сломать его.

DSA: устаревшая подпись

Обзор:Цифровой алгоритм подписи (ssh-dss) является более старым стандартным NIST, заблокированным до 1024BITS и SHA -1 - по умолчанию по умолчанию в OpenSSH ≥7,0.

Когда его использовать:

  • Только если вам абсолютно необходимо подключиться к приборам до 2010 года

Почему это слаб:

  • 1024BITS → ~ 80Bits Security
  • SHA -1 → риски для столкновения
  • НЕСЕ -повторное использование → утечки личного ключа

ECDSA: кривая на основе альтернативы

Обзор:ECDSA использует кривые NIST (P - 256/384/521), чтобы обеспечить RSA -подобную безопасность с меньшими ключами.

Когда его использовать:

  • FIP -составленные среды
  • Вы хотите меньшие ключи и более быстрые, чем RSA

Генерировать ключ P - 256:

ssh-keygen -t ecdsa -b 256 -o -a 100 -C "you@example.com"

Снимок:

  • Размер ключа:256 бит → ~ 128 бит безопасности
  • Подпись:~ 70–100bytes
  • Предостережение:Каждому подписи нужна свежая случайнаяk—POOR RNG = общий компромисс.

ED25519: современный дефолт

Обзор:ED25519 (EDDSA ON CURVE25519)быстрыйВбезопасный, ипростойПолем По умолчанию в Openssh с V.9.4.

Когда его использовать:

  • Почти всегда - современные серверы, git hosts, ci, аппаратные токены

Создайте свой ключ:

ssh-keygen -t ed25519 -a 100 -C "you@example.com"

Как это работает (высокое уровне):

  1. Выведите 256-битный скаляр из вашего семян (SHA-512 + зажим).
  2. Знак с детерминированным новым (без головных болей RNG).
  3. Проверьте с помощью одной точки и сложения.

Безопасность и производительность:

  • ~ 128Bits Классическая безопасность
  • Постоянная лестница →
  • 32Byte Keys, 64Byte подписи

TL; DR & Next Steps

  • Большинство пользователей: Пойти сED25519- легкий, быстрый и будущий надежный (пока квант не прибудет).
  • Наследие: RSA 4096BITS, если вам нужна совместимость; Избегайте DSA вообще.
  • Согласие: ECDSA (P - 256/P - 384) в средах FIPS.

Действие элемента:

rm ~/.ssh/id_{rsa,ecdsa}*
ssh-keygen -t ed25519 -a 100 -C "new-key@$(hostname)"

Для более подробных заметок SSH посетите моиGitHubПолем


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE