ssh-keygen: генерация ключей SSH и параметры | Глоссарий FREEHOSTING

ssh-keygen

SSH Key Generation Utility
ssh-keygen — ssh-keygen — штатная утилита OpenSSH для генерации, преобразования и просмотра пар ключей. Создаёт RSA, ECDSA, Ed25519 и DSA-ключи, позволяет менять парольную фразу, считать отпечаток и подписывать другие открытые ключи в режиме SSH-CA.

Определение простыми словами

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.