JSchはOpenSSH キーファイル形式(公開鍵と秘密鍵の両方)を使用します。私はこのフォーマットの仕様は見つけられませんでしたが、OpenSSHのssh-keygenツールを使って他のフォーマットとの間でキーを変換することができます。
更新:RFC 4253 (section 6.6)に指定されているだけで、その周りにbase64でラッピングして、公開鍵をOpenSSHのメーリングリストで尋ねると、いくつかのRFCのOpenSSHの者の公開鍵ファイルが含まれているように、それが見えます(バージョン2キー)を読んだ後(キータイプはプレフィックスとして、コメントフィールドは後置として)。私はまだプライベートキーファイルの仕様を見つけていません。
残念ながら、JSchの公式ドキュメントはほとんど存在しませんが、私はJavadocsを書きました。 (これは重要なファイル形式は言わないようです...) JSch WikiにManualがあり、public key authenticationについてのページが含まれています(まだキーフォーマットについては触れていませんが: - )
既知のホストファイルも、OpenSSHクライアントの対応するファイルと同じ形式です。これらのファイルの
各行は、以下のフィールドが含まれています:それは、フォーマットがOpenSSH's sshd manual pageで説明されているセクションSSH既知のホスト・ファイル・フォーマットだマーカー (オプション)、ホスト名、ビット数、指数、係数、コメント。フィールドは、空白で区切られた です。
これは実際にはSSH 1 RSAキーにのみ適用されます。 SSH 2キーの場合、タイプ識別子(ecdsa-sha2-nistp256
,ecdsa-sha2-nistp384
,ecdsa-sha2-nistp521
,ssh-dss
またはssh-rsa
)があり、次にベース64エンコード形式のキーがあります。 (許可されたキーファイルについては、同じマニュアルページで少し上を参照してください)。 (私はJSCHだけで、何のECDSAをDSAおよびRSAキーの形式をサポートしていないと思います。)
注これらのファイル内の行は、通常、文字 何百ものであり、あなたは間違いなく、ホストで入力したくないことキーを手で押します。 代わりに、スクリプトssh-keyscan(1)を使用するか、または /etc/ssh/ssh_host_key.pubを取得し、フロントにホスト名を追加して生成します。 ssh-keygen(1)は、 〜/ .ssh/known_hostsの基本的な自動編集も提供しています。ホスト名に一致するホストを削除し、すべてのホスト名をハッシュ表現に変換します。
ありがとうございます。文書化された形式を検討することができます。グーグル "jschのキーファイル形式"とこの質問は4位にランクされています:) – Patrick