Соберите команду ssh-keygen

Выберите нужный ключ — Ed25519, ключ на аппаратном токене FIDO, ECDSA или RSA, — и страница напишет точную команду ssh-keygen, объяснит каждый флаг в ней и даст блок для ~/.ssh/config, который этим ключом пользуется. Для macOS и Linux каждый вариант ключа Ed25519, ECDSA и RSA, который она предлагает, прогнан через ssh-keygen 10.2, и получившийся ключ сверен с тем, что обещает страница. У команд для аппаратных ключей проверено только то, что ssh-keygen принимает их параметры: без токена ключ не создать.

Парольную фразу страница не спрашивает никогда. Её спросит ssh-keygen в вашем терминале — единственном месте, где её стоит набирать.

Выберите ключ

Ваша система
Тип ключа

Пишется в конце публичного ключа. Пусто — ssh-keygen запишет пользователь@имя-машины.

Парольная фраза

Работают только с фразой. Пусто — умолчание ssh-keygen.

Для ~/.ssh/config (по желанию)

Команды

  1. Убедитесь, что ~/.ssh существует:
    mkdir -p -m 700 ~/.ssh
  2. Создайте ключ:
    ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519

  3. Добавьте это в ~/.ssh/config:

    Заполните хост выше, чтобы получить блок для ~/.ssh/config.

  4. Положите публичный ключ на сервер:
    ssh-copy-id -i ~/.ssh/id_ed25519.pub server.example.com
  5. Проверьте отпечаток — ту же строку sshd пишет в журнал сервера, когда этим ключом входят, и её же печатает инструмент отпечатков:
    ssh-keygen -lf ~/.ssh/id_ed25519.pub

Что делает каждый флаг

  • -t ed25519 — тип ключа. Ed25519 ssh-keygen делает по умолчанию с OpenSSH 9.5: публичный ключ в 68 символов, быстрая подпись, настраивать нечего.
  • -f — куда записать приватный ключ. Публичный ляжет рядом, с .pub на конце.

Что стоит знать

  • Если файл уже есть, ssh-keygen спросит, перезаписать ли его. Отвечайте n, если не собирались менять этот ключ.

Какой тип ключа

Ed25519, если ничто не мешает. Это умолчание ssh-keygen с OpenSSH 9.5, OpenSSH принимает его с версии 6.5 от января 2014 года, и выбирать в нём нечего. RSA на 3072 бита и больше — для серверов и сетевых устройств старше него; ECDSA — для политик, которые требуют кривых NIST.

Ключ на аппаратном токене — ed25519-sk или ecdsa-sk — держит приватную половину на устройстве: файл в ~/.ssh без токена бесполезен, и каждое использование требует касания. Нужен OpenSSH 8.2 или новее на обеих сторонах. ecdsa-sk работает с большим числом токенов; для ed25519-sk нужен токен, умеющий Ed25519. На Mac у системных ssh-keygen и ssh поддержки FIDO нет, поэтому страница собирает команду для OpenSSH от Homebrew.

Парольная фраза и круги KDF

Фраза шифрует файл приватного ключа, и скопированный файл — из резервной копии, из синхронизируемой папки, с потерянного ноутбука — ключом не становится. ssh-keygen превращает фразу в ключ шифрования через bcrypt_pbkdf, повторённый -a раз. Умолчание — 24 с OpenSSH 9.4, хотя страница руководства до сих пор пишет 16; ssh-keygen 10.2 пишет 24.

Больше кругов — медленнее каждая попытка у того, у кого файл, и медленнее каждая разблокировка у вас. Замер 24 сентября 2026 года на Apple M5 Pro с ssh-keygen 10.2: 24 круга открываются примерно за 0,2 секунды, 100 — за 0,75, 200 — за 1,5. У старого формата PEM (-m PEM) кругов нет вовсе: фраза проходит один круг MD5, так что берите его только для программ, которые не читают собственный формат OpenSSH.

Когда ключ создан

ssh-copy-id дописывает публичный ключ в ~/.ssh/authorized_keys на сервере и создаёт файл с правами, которых ждёт sshd. В Windows ssh-copy-id нет, поэтому вариант для PowerShell передаёт ключ через сам ssh.

IdentitiesOnly yes в блоке конфига заставляет ssh предлагать этому хосту только этот ключ, а не все, какие найдёт. Сервер считает каждый предложенный ключ попыткой, и лишние несколько заканчиваются «Too many authentication failures» раньше, чем дойдёт до нужного.

Вопросы, которые задают на самом деле

Эта страница видит мою парольную фразу?

Нет, и не может: поля для неё нет. Если фраза выбрана, в команде нет -N, и ssh-keygen спросит её у вас в терминале. Сама страница ничего никуда не отправляет — ни fetch, ни XMLHttpRequest, ни отправки формы, ни счётчиков.

Ed25519 или RSA?

Ed25519, если сервер или устройство его принимает. Это умолчание ssh-keygen с OpenSSH 9.5, публичный ключ — 68 символов, выбирать длину не нужно. Если нужен RSA, берите 3072 бита и больше.

Что делает -a в ssh-keygen?

Задаёт, сколько кругов bcrypt_pbkdf превращают парольную фразу в ключ, которым шифруется файл приватного ключа. Чем больше кругов, тем медленнее подбор у того, кто украл файл. Умолчание — 24 с OpenSSH 9.4, и важно оно только для ключа с фразой.

Что такое резидентный ключ FIDO?

-O resident хранит дескриптор ключа на самом токене, и на другом компьютере ssh-keygen -K скачает его снова — копировать файл не придётся. То же сможет любой, у кого токен и его PIN, поэтому сначала задайте PIN.

Почему в команде для PowerShell нет -N?

Потому что пустой аргумент PowerShell передаёт по-разному до и после версии 7.3, и написания пустого -N, которое работало бы в обеих, нет. Нажмите Enter дважды, когда ssh-keygen спросит фразу, — результат тот же.

Сможет ли Conchshell пользоваться таким ключом?

Да, ключами Ed25519, ECDSA и RSA в собственном формате OpenSSH — его ssh-keygen пишет, если не добавить -m PEM, — с парольной фразой и без: он читает файл приватного ключа напрямую. Ключ RSA, записанный с -m PEM, тоже подойдёт, а ключ ECDSA с -m PEM версия 2.16.0 прочитать не может; ssh-keygen -p -f по этому файлу перезапишет его в формате OpenSSH. Ключи на аппаратных токенах (-sk) он использовать не умеет и с ssh-agent не работает.

Откуда это взялось

Если ssh-keygen под рукой нет — старая Windows, чужая машина, — Conchshell может сделать ключ сам: кнопка Создать… рядом с полем ключа в окне подключения создаёт ключ Ed25519, RSA (2048, 3072 или 4096 бит) или ECDSA, по желанию с парольной фразой. Обе половины он пишет по выбранному вами пути, показывает публичную строку и её отпечаток SHA256, а приватную половину не показывает никогда. Ключи на аппаратных токенах (-sk) он не создаёт.

При импорте вашего ~/.ssh/config он берёт из каждой записи Host поля HostName, User, Port, IdentityFile и первый узел ProxyJump — так что блок, собранный здесь, приезжает уже с ключом.

Скачать Conchshell бесплатно

Что почитать дальше