ssh: ошибка загрузки ключа"./ id rsa": неверный формат

Почему-то один из моих ssh ключей "просто сломался" - он просто перестал работать:

$ ssh-add ./id_rsa
Error loading key "./id_rsa": invalid format

копировать ключ внутри чистый ВМ, ключ работает. Даже с точно такой же версией ssh (OpenSSH_7.8p1, OpenSSL 1.1.0 i-fips 14 Aug 2018 в Fedora 28). Поэтому оно должно быть связано с некоторым config на моей системе я предполагаю.

# cat ./id_rsa
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,...

...
-----END RSA PRIVATE KEY-----

также своеобразно: GNOME каким-то образом умудряется добавлять ключ на логин с seahorse. Тогда ssh-add -L перечислены ключ, но это не используется:

sign_and_send_pubkey: signing failed: agent refused operation
6
задан FlorianLudwig
20.05.2023 8:40 Количество просмотров материала 3261
Распечатать страницу

1 ответ

традиционно OpenSSH использовал тот же формат закрытого ключа, что и более старый формат PEM, используемый OpenSSL. (Поскольку он использует OpenSSL для разбора ключа, он также принимает новый формат PKCS#8.)

так что вопрос может быть один из:

  1. ваша версия OpenSSL не загружает этот формат ключа. Возможно, он случайно включил режим FIPS и отказывается от любых алгоритмов, кроме тех, которые являются частью его первоначальной проверки FIPS?

    попробуйте загрузить ключ в openssl инструмент командной строки (который, Да, также может быть связан с другим libcrypto, и вы должны проверить с ldd):

    openssl rsa -noout -text < id_rsa
    openssl pkey -noout -text < id_rsa
    

    попробуйте преобразовать его в формат PKCS#8:

    umask 077
    openssl pkey < id_rsa > id_rsa.pkcs8
    ssh-add id_rsa.pkcs8
    
  2. ваш OpenSSH был построен без поддержки OpenSSL. Хотя бы ssh -V говорит, что поддержка была включена, что не означает the ssh-add двоичный то же самое – это может произойти из другой частичной установки.

    использовать type -a ssh и type -a ssh-add для сравнения мест установки.

    как только вы знаете путь, используйте ldd /usr/bin/ssh-add чтобы убедиться, что он связан с libcrypto.so (криптографическая библиотека OpenSSL).


если ничего не работает, попробуйте преобразовать ключ в новый формат OpenSSH... замазка. Установите putty пакет для Fedora, и использование:

puttygen id_rsa -o id_rsa.newformat -O private-openssh-new
ssh-add id_rsa.newformat

также своеобразно: GNOME каким-то образом умудряется добавлять ключ на логин с seahorse.

более старые версии Gnome Keyring имеют внутреннюю копию кода агента SSH и независимы от системы OpenSSH. Таким образом, они будут принимать ключи, которые ваш OpenSSH не будет. (Но, с другой стороны, это означает серьезное отставание с точки зрения поддержки функций (таких как ключи Ed25519), а последний Gnome Keyring просто использует систему вместо этого ssh-агент.)

2
отвечен grawity 2023-05-21 16:28

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх