Генератор SSH-ключей
Постройте точную команду ssh-keygen, комментарий к ключу на основе назначения и готовый сниппет для ~/.ssh/config. Эта страница никогда не генерирует настоящий ключ — она только собирает команду, которую вы запускаете сами.
Настоящий ключ в вашем браузере никогда не создаётся.
Шаг 1
Выберите алгоритм
Оба дают настоящую пару ключей. Разница — в размере, скорости и том, какие серверы их принимают.
Ed25519 — современный алгоритм на эллиптических кривых: короткие ключи, быстрая генерация и аутентификация, поддержка любым SSH-сервером примерно за последнее десятилетие. Используйте его, если что-то конкретное не вынуждает отказаться.
Используйте вы@назначение-год, а не комментарий по умолчанию machine@host. Когда в authorized_keys на сервере оказывается пять ключей, комментарий — единственное, что подскажет, какому ноутбуку или назначению принадлежит каждый из них.
Оставьте пустым, чтобы принять расположение по умолчанию ssh-keygen (показано как плейсхолдер выше). Задавайте это, только если храните несколько ключей рядом друг с другом.
Больше значение замедляет подбор украденного ключа, защищённого парольной фразой — а заодно и каждую разблокировку. Оставьте пустым для значения по умолчанию ssh-keygen.
Результат
Запустите это в своём терминале
ssh-keygen -t ed25519 -C 'you@wespner-vps-2026'
Сохранено в расположение по умолчанию: ~/.ssh/id_ed25519 (и ~/.ssh/id_ed25519.pub).
Парольная фраза
У вас её спросят — вот в чём компромисс
ssh-keygen попросит вас ввести парольную фразу дважды, либо дважды нажать Enter, если она не нужна. Ничто выше не задаёт её за вас — парольная фраза вводится в терминале, а не сохраняется в команде.
С парольной фразой: если файл самого ключа когда-нибудь украдут — кража ноутбука, утёкший бэкап — без парольной фразы он бесполезен. Цена — вводить её при каждом подключении.
Без неё: никакого трения, но любой, кто получит файл приватного ключа, попадёт внутрь немедленно. ssh-agent (Linux), Связка ключей macOS или Pageant (PuTTY) решают проблему трения: разблокируйте один раз за сессию, и каждое последующее подключение проходит без вопросов, так что редко есть веская причина пропускать парольную фразу.
Почему это важно
Ed25519 против RSA, простыми словами
Ed25519 это более новый алгоритм на эллиптических кривых: ключ занимает несколько сотен байт вместо нескольких килобайт, математика быстрее с обеих сторон, и он был рекомендуемым выбором по умолчанию на любом сервере примерно за последнее десятилетие.
RSA 4096 старше и медленнее, но понимается буквально любой реализацией SSH из когда-либо выпущенных. Используйте его, только когда сервер слишком старый или слишком закрытый, чтобы принять Ed25519 — устаревшее сетевое оборудование, некоторые managed-хосты, древние корпоративные устройства. Если вы не знаете, относится ли это к вам, значит не относится: используйте Ed25519.
Шаг 2
Куда отправится ключ
Эти данные питают и команды копирования на сервер ниже, и сниппет конфигурации SSH в шаге 3.
Доставка на место
Поместите публичный ключ на сервер
С вашей машины уходит только файл .pub. Приватный ключ (без .pub) никогда никуда не копируется.
Проще всего: ssh-copy-id (macOS/Linux, либо WSL/Git Bash на Windows)
ssh-copy-id -i ~/.ssh/id_ed25519.pub [email protected]
Ручной способ: добавить в authorized_keys самостоятельно
cat ~/.ssh/id_ed25519.pub | ssh [email protected] "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
Этот однострочник по пути выставляет права 700 на ~/.ssh и 600 на authorized_keys — SSH молча игнорирует оба файла, если права более свободные. Используйте калькулятор chmod и chown если вам когда-нибудь понадобится исправить эти права постфактум, или хотите увидеть, что именно дают эти два режима.
Шаг 3
Постройте сниппет ~/.ssh/config
Превращает ssh [email protected] -p 22 -i ~/.ssh/id_ed25519 просто в ssh wespner-vps.
~/.ssh/config
Host wespner-vps
HostName play.wespner.eu
User deploy
Port 22
IdentityFile ~/.ssh/id_ed25519
IdentitiesOnly yesВставьте этот блок в ~/.ssh/config (создайте файл, если его ещё нет), затем подключайтесь просто через ssh wespner-vps — без пользователя, хоста, порта или флага -i, больше никогда.
Windows
OpenSSH в PowerShell, либо PuTTYgen
Windows 10/11 включает OpenSSH по умолчанию — команда ssh-keygen выше работает без изменений в PowerShell или командной строке. Ключи попадают в C:\Users\вы\.ssh\ (PowerShell так же разворачивает ~).
ssh-copy-id не входит в комплект Windows OpenSSH. Используйте вместо этого эквивалент для PowerShell:
Копирование на сервер через PowerShell
Get-Content ($env:USERPROFILE + '\.ssh\id_ed25519.pub') | ssh [email protected] "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
Предпочитаете PuTTY/WinSCP? Сгенерируйте ключ через PuTTYgen (Generate → подвигать мышью → Save private key as .ppk), затем скопируйте текст публичного ключа из верхней части окна прямо в authorized_keys. Конфигурация находится по тому же пути ~/.ssh/config, если вы на клиенте OpenSSH — Pageant/WinSCP используют собственный список сохранённых сессий.
macOS / Linux
Терминал, нативно
Запустите команду выше прямо в Терминале. Ключи попадают в ~/.ssh/, а ssh-copy-id идёт в комплекте почти с каждым дистрибутивом (macOS: brew install ssh-copy-id, если его нет).
Конфигурация находится в ~/.ssh/config — тот же блок, что и в шаге 3, перевод не нужен.
Чтобы не вводить парольную фразу при каждом подключении: ssh-add ~/.ssh/id_ed25519 загружает её в ssh-agent на время сессии. На macOS ssh-add --apple-use-keychain ~/.ssh/id_ed25519 (или UseKeychain yes в блоке конфигурации) запоминает её между перезагрузками через Связку ключей.
Управляете собственным игровым сервером?
Игровые серверы Wespner с защитой от DDoS, дисками NVMe и активацией за несколько минут.