
Демистификация типов ключей 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"
Как это работает:
- Выберите два больших простых числа
p
иq
Полем - Вычислять
n = p · q
иphi(n) = (p - 1) · (q - 1)
Полем - Выбирать
e
, вычислитьd
какe · d ≡ 1 (mod phi(n))
Полем - Шифровать с
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"
Как это работает (высокое уровне):
- Выведите 256-битный скаляр из вашего семян (SHA-512 + зажим).
- Знак с детерминированным новым (без головных болей RNG).
- Проверьте с помощью одной точки и сложения.
Безопасность и производительность:
- ~ 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Полем
Оригинал