Команда ssh-keygen: как создать SSH-ключ
SSH-ключ — пара файлов, с которой вход на сервер идёт без пароля и надёжнее пароля. Создаёт пару команда ssh-keygen. Она входит в клиент OpenSSH, который есть в Windows 10 с версии 1809, в Windows 11, на Mac и в Linux. Ниже — как создать ключ и что ещё умеет команда.
Содержание 11
Что сделать прямо сейчас
- Откройте терминал на своём компьютере, не на сервере: в Windows — PowerShell, на Mac — Терминал. Как его найти — инструкция.
- Создайте ключ:
ssh-keygen -t ed25519 -C "ivan@laptop". Вместоivan@laptop— любая подпись, по которой вы узнаете ключ. - На вопрос
Enter file in which to save the keyнажмите Enter: ключ ляжет в папку .ssh под стандартным именем. - На вопрос
Enter passphraseпридумайте пароль для ключа или нажмите Enter, чтобы оставить ключ без пароля. Повторите то же наEnter same passphrase again. Буквы при вводе не видны — так и должно быть. - Проверьте: команда ответит
Your identification has been savedиYour public key has been saved— пути к двум файлам.
Дальше открытый ключ кладут на сервер — как это сделать.
Какие файлы создаются
| Файл | Что это | Кому показывать |
|---|---|---|
id_ed25519 | закрытый ключ | никому, он остаётся на вашем компьютере |
id_ed25519.pub | открытый ключ — одна строка, начинается с ssh-ed25519 | его кладут на сервер и в панель провайдера |
Папка с ключами: на Mac и Linux — ~/.ssh, в Windows — C:\Users\ИМЯ\.ssh. Показать открытый ключ: на Mac и Linux cat ~/.ssh/id_ed25519.pub, в Windows type $env:USERPROFILE\.ssh\id_ed25519.pub.
Главные ключи команды
| Команда | Что делает |
|---|---|
ssh-keygen -t ed25519 | создать ключ Ed25519 |
ssh-keygen -t ed25519 -C "подпись" | то же, с подписью в конце открытого ключа |
ssh-keygen -t ed25519 -f ~/.ssh/id_work | создать ключ под своим именем |
ssh-keygen -p -f ~/.ssh/id_ed25519 | сменить или убрать пароль ключа |
ssh-keygen -c -f ~/.ssh/id_ed25519 | сменить подпись ключа |
ssh-keygen -y -f ~/.ssh/id_ed25519 | вывести открытый ключ по закрытому |
ssh-keygen -lf ~/.ssh/id_ed25519.pub | показать отпечаток ключа |
ssh-keygen -F ВАШ_IP | найти сервер в списке известных |
ssh-keygen -R ВАШ_IP | удалить запись о сервере из списка известных |
-R нужен после переустановки системы на сервере, когда SSH пишет, что ключ сервера изменился. Когда так делать можно, а когда опасно, — в статье REMOTE HOST IDENTIFICATION HAS CHANGED.
Пароль на ключ
Пароль защищает ключ, если кто-то скопирует файл с вашего компьютера: без пароля ключом не воспользоваться. Минус — пароль нужно вводить при подключении. Чтобы вводить его один раз за сеанс, ключ добавляют в агент — как.
Сменить пароль: ssh-keygen -p -f ~/.ssh/id_ed25519. Команда спросит старый пароль и дважды новый. Чтобы убрать пароль, на вопрос о новом нажмите Enter. Открытый ключ при этом не меняется, на сервере ничего править не нужно.
Второй ключ для другого сервера
Чтобы не затереть первый ключ, дайте второму своё имя через -f:
ssh-keygen -t ed25519 -f ~/.ssh/id_work -C "work"Получится id_work и id_work.pub. Подключиться с ним: ssh -i ~/.ssh/id_work ivan@ВАШ_IP. Чтобы не писать -i каждый раз, укажите ключ в файле config — как.
Если ключ уже есть
Если файл с таким именем уже есть, ssh-keygen спросит Overwrite (y/n)?. Отвечайте n. Ответ y заменит старый ключ новым, и на серверы, где лежит старый открытый ключ, с этого компьютера будет не войти. Новый ключ создайте под другим именем через -f.
Открытый ключ потерялся
Открытый ключ можно получить заново из закрытого:
ssh-keygen -y -f ~/.ssh/id_ed25519Команда выведет строку ssh-ed25519 …. Скопируйте её целиком. Если ключ с паролем, команда сначала спросит пароль. Закрытый ключ из открытого получить нельзя: если пропал файл id_ed25519, создайте новую пару.
Отпечаток ключа
Отпечаток — короткая строка, по которой сверяют ключ: ssh-keygen -lf ~/.ssh/id_ed25519.pub. В ответе — длина ключа, отпечаток SHA256:…, подпись и тип в скобках.
Ошибки и как их исправить
| Ответ | Что значит | Что сделать |
|---|---|---|
Load key "…": incorrect passphrase supplied to decrypt private key | неверный пароль ключа | введите пароль ещё раз, проверьте раскладку |
Load key "…": invalid format | файл повреждён или это не закрытый ключ | разбор ошибки |
Saving key "…" failed: No such file or directory | в пути после -f нет такой папки | проверьте путь или создайте папку |
Saving key "…" failed: Permission denied | нет прав на запись в эту папку | сохраните ключ в свою папку .ssh |
unknown key type … | опечатка после -t | напишите -t ed25519 |
Passphrases do not match | пароль и повтор не совпали | введите оба раза одинаково |
Если ключ создан, а сервер не пускает, — статьи Permission denied (publickey) и UNPROTECTED PRIVATE KEY FILE.
Источники
- Справка ssh-keygen для Ubuntu 24.04 — ключи -t, -C, -f, -N, -p, -c, -y, -l, -F и -R; без -t создаётся ключ Ed25519.
- Исходный код OpenSSH 9.6: ssh-keygen.c — вопросы при создании ключа и тексты Overwrite, Saving key failed, unknown key type.
- Исходный код OpenSSH 9.6: ssherr.c — тексты invalid format и incorrect passphrase supplied to decrypt private key.
Сверено 11 октября 2026 года.
Что почитать дальше
- Как подключиться к VPSкак положить ключ на сервер.
- Ошибки SSHразбор сообщений при подключении.
- Команда scpкопировать файлы на сервер по тому же ключу.
- Команды Linux для новичкашпаргалка по командам.
Проверено и обновлено: 11.10.2026