Ошибка SSH Load key invalid format: ssh не может прочитать ключ
ssh нашёл файл ключа, но не смог прочитать его как закрытый ключ. Одна команда покажет, в порядке ли файл, а шаги ниже — как его исправить.
Содержание 10
Что сделать прямо сейчас
- Проверьте файл, названный в сообщении, — шаг 1.
- Если это файл с .pub на конце, укажите файл без .pub — шаг 2.
- Если ключ из PuTTY (файл .ppk), переведите его в формат OpenSSH — шаг 3.
- Если ключ копировали через редактор, чат или почту, восстановите файл — шаг 4.
Вместо ВАШ_IP подставьте адрес своего сервера из панели провайдера. В примерах вывода стоит адрес 203.0.113.10 — у вас будет свой IP.
Что значит это сообщение
Load key "/Users/anna/.ssh/id_ed25519": invalid format
ivan@203.0.113.10: Permission denied (publickey).Первая строка: ssh открыл файл, указанный в кавычках, но не узнал в нём закрытый ключ. Это ещё не остановка — ssh пробует другие способы входа. Если сервер пускает только по ключу, следом придёт Permission denied (publickey).
Закрытый ключ OpenSSH — текстовый файл. Его первая строка — -----BEGIN OPENSSH PRIVATE KEY-----, последняя — -----END OPENSSH PRIVATE KEY-----, между ними — строки из букв и цифр. У ключей RSA, созданных старыми программами, первая строка может быть -----BEGIN RSA PRIVATE KEY----- — такой формат ssh тоже читает.
Причины:
- вместо закрытого ключа указан открытый — файл с .pub на конце;
- ключ создан в PuTTY и сохранён в его формате .ppk;
- файл испорчен при копировании через редактор, чат или почту: изменились окончания строк, пропал перевод строки в конце, скопирована только часть текста.
Шаг 1. Проверьте файл ключа
Команды вводятся в терминале на вашем компьютере — как открыть терминал. Подставьте путь из кавычек в сообщении вместо пути в примере:
ssh-keygen -y -f ~/.ssh/id_ed25519Команда читает закрытый ключ и выводит из него открытый — строку, которая начинается с ssh-ed25519 AAAA или ssh-rsa AAAA. Если ключ защищён паролем (passphrase), она сначала спросит его. Строка вывелась — файл в порядке. Если в ответ снова Load key … invalid format, файл не читается: смотрите шаги ниже.
В Windows — в «Командной строке»:
ssh-keygen -y -f "%USERPROFILE%\.ssh\id_ed25519"Если вместо Load key ssh пишет такое:
Warning: Identity file id_ed25519 not accessible: No such file or directory.— файла по этому пути нет. Проверьте путь после -i или в строке IdentityFile файла config. Посмотреть, какие файлы лежат в папке .ssh, можно командой ls ~/.ssh на Mac и Linux или dir "%USERPROFILE%\.ssh" в Windows.
Шаг 2. Если указан файл .pub
Файл с .pub на конце — открытый ключ, его кладут на сервер. Для входа ssh нужен закрытый ключ — тот же файл без .pub. Исправьте команду:
ssh -i ~/.ssh/id_ed25519 root@ВАШ_IPИли строку IdentityFile в файле config (где он и как его открыть):
IdentityFile ~/.ssh/id_ed25519Если права на файл .pub открыты для других, ssh вместо invalid format покажет предупреждение UNPROTECTED PRIVATE KEY FILE — что делать в этом случае.
Шаг 3. Если ключ из PuTTY (.ppk)
Первая строка файла .ppk начинается с PuTTY-User-Key-File — это формат программы PuTTY, ssh его не читает. Переведите ключ в формат OpenSSH программой PuTTYgen из набора PuTTY:
- Запустите PuTTYgen и нажмите Load. Выберите файл .ppk; если ключ защищён паролем, введите его.
- В меню Conversions выберите Export OpenSSH key. Если у ключа нет пароля, PuTTYgen предупредит об этом — согласитесь, чтобы сохранить.
- Сохраните файл в папку .ssh, например под именем id_ed25519_putty, без расширения.
Укажите новый файл при подключении. В «Командной строке» Windows:
ssh -i "%USERPROFILE%\.ssh\id_ed25519_putty" root@ВАШ_IPЕсли после этого ssh выдаст UNPROTECTED PRIVATE KEY FILE, исправьте права по отдельной статье.
Можно и не переводить: создайте новый ключ командой ssh-keygen и добавьте его на сервер — как это сделать.
Шаг 4. Если файл испорчен при копировании
Надёжнее всего скопировать ключ заново как файл — с флешки, через архив или облачный диск, а не как текст через редактор, чат или письмо.
Если исходного файла нет, попробуйте поправить этот. На Mac и Linux команда ниже убирает символ возврата каретки, которым заканчиваются строки в текстах из Windows: с ним ssh ключ не читает.
perl -pi -e 's/\r$//' ~/.ssh/id_ed25519Эта команда добавляет перевод строки в конец файла — без него ssh тоже не читает ключ. Если перевод строки там уже был, лишний не помешает:
echo >> ~/.ssh/id_ed25519После каждой правки повторите проверку из шага 1. Если файл так и не читается — например, от ключа скопирована только часть, — восстановить его нельзя. Создайте новый ключ и добавьте его на сервер (как это сделать). Войти на сервер, чтобы добавить ключ, можно через консоль в панели провайдера.
Как проверить
Проверка из шага 1 должна вывести строку открытого ключа. Затем подключитесь:
ssh -i ~/.ssh/id_ed25519 root@ВАШ_IPСтроки Load key … invalid format больше нет — ssh прочитал ключ. Если сервер всё равно отвечает Permission denied (publickey), разберитесь по статье об этой ошибке.
Похожие ошибки
| Сообщение | Чем отличается |
|---|---|
| UNPROTECTED PRIVATE KEY FILE | Ключ читается, но права на файл слишком открытые |
| Permission denied (publickey) | ssh прочитал ключ, но сервер его не принял |
| Too many authentication failures | ssh перебрал слишком много ключей |
| Bad owner or permissions on config | Неверные права не на ключ, а на файл config |
Источники
- man ssh-keygen — параметр -y: вывести открытый ключ из закрытого.
- man ssh_config — строка IdentityFile.
- Документация PuTTYgen — кнопка Load и Export OpenSSH key в меню Conversions.
- Исходный код OpenSSH — тексты сообщений Load key и invalid format.
Сверено 9 октября 2026 года.
Что почитать дальше
- Как подключиться к VPS по SSH — подключение и вход по ключу.
- UNPROTECTED PRIVATE KEY FILE — если ssh ругается на права ключа.
- Permission denied (publickey) — если сервер не принял ключ.
- Как открыть терминал — если вы ни разу не запускали команды.
Проверено и обновлено: 09.10.2026