Ошибки

Ошибка SSH Load key invalid format: ssh не может прочитать ключ

ssh нашёл файл ключа, но не смог прочитать его как закрытый ключ. Одна команда покажет, в порядке ли файл, а шаги ниже — как его исправить.

Обновлено 09.10.2026≈ 6 мин чтения
Содержание 10

Что сделать прямо сейчас

  1. Проверьте файл, названный в сообщении, — шаг 1.
  2. Если это файл с .pub на конце, укажите файл без .pub — шаг 2.
  3. Если ключ из PuTTY (файл .ppk), переведите его в формат OpenSSH — шаг 3.
  4. Если ключ копировали через редактор, чат или почту, восстановите файл — шаг 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:

  1. Запустите PuTTYgen и нажмите Load. Выберите файл .ppk; если ключ защищён паролем, введите его.
  2. В меню Conversions выберите Export OpenSSH key. Если у ключа нет пароля, PuTTYgen предупредит об этом — согласитесь, чтобы сохранить.
  3. Сохраните файл в папку .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 failuresssh перебрал слишком много ключей
Bad owner or permissions on configНеверные права не на ключ, а на файл config

Источники

Сверено 9 октября 2026 года.

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

Проверено и обновлено: 09.10.2026