Определение простыми словами
RSA-ключ — это пара чисел, связанных через факторизацию большого простого произведения. Открытый ключ кладут на сервер или в сертификат, закрытый держат у себя. Что зашифровано открытой частью — расшифровывается только закрытой, и наоборот: подпись закрытым проверяется открытым.
Применяется в SSH-доступе к серверам, TLS-сертификатах сайтов, GPG-подписи писем и пакетов. Длина в битах задаёт стойкость: 2048 — текущий минимум, 3072 и 4096 — запас на годы вперёд. Альтернативы — ed25519 (короче и быстрее) и ECDSA. Связан с SSH, TLS и OpenSSL.
Сравнение
| Алгоритм | Длина ключа | Стойкость (бит) | Скорость подписи |
|---|---|---|---|
| RSA-2048 | 2048 бит | ~112 | Средняя |
| RSA-3072 | 3072 бит | ~128 | Медленнее |
| RSA-4096 | 4096 бит | ~140 | Заметно медленнее |
| ed25519 | 256 бит | ~128 | Быстрее RSA-2048 в 5 раз |
Кейсы использования
- SSH-доступ на VPS без пароля — публичный ключ кладётся в
~/.ssh/authorized_keys. - TLS-сертификат для сайта — пара RSA-2048 подписывается удостоверяющим центром.
- Подпись релизных архивов через GPG — разработчики проверяют целостность дистрибутивов.
- Негативный сценарий: утечка приватного ключа из репозитория или резервной копии равна полной компрометации — при заливке проектов на GitHub боты сканируют коммиты и за минуты находят оставленные id_rsa.
Технические детали
ssh-keygen -t rsa -b 4096 -C "stas@free-hosting.ru" -f ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub root@server.example
openssl rsa -in id_rsa -pubout -out id_rsa.pub.pem
openssl rsa -in id_rsa -text -noout | head -20
Команда ssh-keygen создаёт пару, ssh-copy-id загружает публичную часть на сервер. Для production-серверов вместо RSA лучше выбирать ed25519 — он короче, быстрее и не уступает по стойкости. RSA остаётся для совместимости с устаревшим оборудованием и старыми CI/CD.
🔥 Где это применяется
Частые вопросы
Какую длину RSA-ключа выбрать?
Минимум 2048 бит. Для долгосрочного хранения и серверов критичной инфраструктуры — 4096 бит. Меньше 2048 уже не считается безопасным.
Чем RSA отличается от ed25519?
ed25519 короче (256 бит даёт стойкость RSA-3072), быстрее на подпись и проверку, поддерживается всеми современными SSH-серверами с 2014 года.
Что делать, если приватный ключ утёк?
Немедленно удалить публичную часть с серверов, сгенерировать новую пару, проверить логи sshd на несанкционированные подключения.