Определение простыми словами
ssh-keygen — это «фабрика» SSH-ключей. Вы запускаете команду, утилита считает случайные числа и создаёт два файла: закрытый ключ (по умолчанию ~/.ssh/id_ed25519) и открытый (~/.ssh/id_ed25519.pub). Закрытый ключ хранится у вас и шифруется парольной фразой, открытый — раскладывается на серверах в файл ~/.ssh/authorized_keys. После этого вход на сервер по паролю можно отключить полностью.
Утилита работает не только с ключами для входа. Через ssh-keygen -F проверяется наличие хоста в known_hosts, через ssh-keygen -R удаляется устаревшая запись после переустановки системы, через -l считается отпечаток. В режиме SSH-CA одной парой ключей подписываются десятки пользовательских ключей с ограниченным сроком действия — это удобный аналог корпоративного PKI.
Сравнение алгоритмов
| Алгоритм | Длина | Когда применять |
|---|---|---|
| Ed25519 | 256 бит | Современный выбор по умолчанию |
| RSA | 3072–4096 | Совместимость со старыми системами |
| ECDSA | 256–521 | Когда нужны NIST-кривые |
| DSA | 1024 | Не использовать, считается небезопасным |
Кейсы использования
- Беспарольный вход на VPS по Ed25519-ключу через SSH.
- Деплой с CI/CD: deploy-ключ выпускается командой и кладётся в репозиторий.
- SSH-CA в крупной инфраструктуре: вход по подписанным сертификатам с TTL 8 часов.
- Негативный сценарий: генерация ключа без парольной фразы и хранение его в открытом виде на ноутбуке — потеря устройства равна потере доступа ко всем серверам.
Технические детали
ssh-keygen -t ed25519 -C "deploy@app01"
ssh-keygen -t rsa -b 4096 -f ~/.ssh/legacy
ssh-keygen -p -f ~/.ssh/id_ed25519
ssh-keygen -lf ~/.ssh/id_ed25519.pub
ssh-keygen -R old-server.example.com
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@host
ssh-keygen -s ca_key -I user1 -n root -V +8h user_key.pub
Файл закрытого ключа должен иметь права 600, иначе OpenSSH откажется его использовать. Для удобной работы с несколькими ключами помогает ~/.ssh/config с директивой IdentityFile. Если вы только начинаете — посмотрите смежные карточки SFTP и Firewall.
🔥 Где это применяется
Частые вопросы
Какой алгоритм выбрать в 2026 году?
Ed25519: короткий ключ, быстрая генерация, поддерживается всеми актуальными версиями OpenSSH с 2014 года.
Зачем нужна passphrase?
Это второй фактор: даже если файл с закрытым ключом утечёт, без парольной фразы им нельзя воспользоваться.
Можно ли использовать один ключ на нескольких машинах?
Технически да, но это плохая практика. Заведите отдельную пару для каждого устройства — потерянный ноутбук отзывается одной строкой в authorized_keys.