GNU/Linux >> Linux の 問題 >  >> Linux

ssh:キーのロード中にエラーが発生しました./id_rsa:無効な形式

従来、同じ秘密鍵形式を使用していた OpenSSH は、OpenSSL で使用されていた古い PEM 形式と同じです。 (キーの解析に 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 でも サポートが有効になったと言っていますが、それは自動的に意味するわけではありません ssh-add バイナリは同じです。別の部分的なインストールに由来する可能性があります。

    type -a ssh を使用 と type -a ssh-add 設置場所を比較します。

    パスがわかったら、 ldd /usr/bin/ssh-add を使用します libcrypto.so にリンクされていることを確認する (OpenSSL 暗号ライブラリ)

何も機能しない場合は、PuTTY を使用してキーを新しい OpenSSH 独自の形式に変換してみてください。 putty をインストールします Fedora 用のパッケージ、および使用:

puttygen id_rsa -o id_rsa.newformat -O private-openssh-new
ssh-add id_rsa.newformat
<ブロック引用>

また、奇妙な点:GNOME は、どうにかして seahorse でのログイン時にキーを追加することができます。

古い GNOME キーリング バージョンには、SSH エージェント コードの内部コピーがあり、システムの OpenSSH から独立しています。そのため、OpenSSH が受け入れないキーを受け入れます。 (しかし一方で、これは機能のサポート (Ed25519 キーなど) に関して深刻な遅れを意味し、最新の GNOME キーリングは代わりにシステム ssh-agent を使用するだけです。)


Gitlab で CI パイプライン変数を介して秘密鍵を渡すときに、同じエラー メッセージが表示されました。

このエラーは、変数の末尾に改行文字がないために発生し、手動で追加することで修正されました.


私の場合、問題は id_rsa ファイルの行末文字が正しくないことが原因でした。ファイルの内容をコピーした後、Windows テキスト エディターが助けを求めてきて、EOL を CR LF に変換しました。


Linux
  1. 共有ライブラリの読み込み中にエラーが発生しましたlibcrypto.so.1.1–OpenSSL[修正]

  2. Linuxは複数の連続したパスセパレーター(/ home //// username /// file)をどのように処理しますか?

  3. Bash =〜正規表現とHttps://regex101.com/?

  1. Ssh –プライベートSshキーが与えられた場合、公開キーを回復するにはどうすればよいですか?

  2. Kubuntuがログイン時にエラーを表示する(file:///usr/share/sddm//themes/breeze/main.qml:noそのようなファイルまたはディレクトリ)?

  3. Gpgエラー、「http://archive.canonical.com PreciseRelease」の署名が無効ですか?

  1. Linux で SSH 経由で X アプリケーションを実行できない

  2. insmod エラー:'./hello.ko' を挿入中:-1 無効なモジュール形式

  3. id_rsa.pub ファイルの SSH エラー:無効な形式