ssh-keygen
("ssh" パッケージ) が( puttygen
"パテ" パッケージ)。
公開鍵と秘密鍵を作成すると、ssh-keygen
一部の SSH サーバーでは鍵が受け入れられません。puttygen
1 つのサーバーのみで鍵を作成すると、その鍵が受け入れられます。
Linux リポジトリでは、なぜ共通のソリューション (パッケージ) を提案しないのでしょうか?
別の荷物を見つけましたssh-3.2.9.1PuTTY で機能するキーを作成します。しかし、なぜ SSH には便利なソリューションがないのでしょうか?
答え1
OpenSSH は SSH プロトコルの事実上の標準実装です。PuTTY と OpenSSH が異なる場合、互換性がないのは PuTTY です。
OpenSSH でデフォルト オプションを使用してキーを生成するとssh-keygen
、ほぼすべてのサーバーで動作します。このようなキーを受け入れないサーバーは、古いサーバー、SSH の別の実装を使用しているサーバー、または奇妙な制限的な方法で構成されているサーバーです。デフォルト以外のタイプのキーは、一部のサーバーではサポートされていない可能性があります。特に、ECDSA キーを使用すると、セッションの確立がわずかに速くなりますが、これは OpenSSH の最新バージョンでのみサポートされています。
PuTTYは異なるキーファイル形式を使用します。PuTTYには、変換する独自の.ppk
形式と OpenSSH の形式との間の相違点。
あなたが見つけたssh-3.2.9.1は商用製品独自の異なる秘密鍵フォーマットを持っています。OpenSSH の代わりにこれを使用する理由はありません。互換性が低く、料金がかかり、使用方法に関するチュートリアルがほとんどありません。
答え2
ほとんどの Linux ディストリビューションには、Linux 用の PuTTY (パッケージ名putty
) が用意されています。Linux 側に PuTTY をインストールし、それを使用して.ppk ファイルを通常のスタイルのキー ファイル (ファイル名に .pem が付いていないにもかかわらず、PEM ファイルと呼ばれます)puttygen
に変換できます。ssh
puttygen id_dsa.ppk -O private-openssh -o id_dsa
注記:スタイル PEM ファイルを PuTTY にputtygen
インポートし直すこともできます。ssh
PuTTYの作者はシンプルさを選んだため、PuTTY/SSH-2キー認証は、単一の独自の .ppk ファイルに保存されます。通常、これらのキーは によって 2 つの別々のファイルとして管理されますssh
。
Linuxでは、キーファイルは通常、ディレクトリに保存されます。.ssh。
変換プロセスの概要については、次のタイトルの Stack Overflow の質問に詳しく説明されています。PEMをPPKファイル形式に変換する。
PuTTYの作者は、.ppkファイルを使用する理由についても説明しています。PuTTY ユーザーマニュアル詳細はセクション 8.2.12 をご覧ください。
答え3
どちらも「SSHプロトコルバージョン2のRSA鍵ペア」を保存しており、変換された互換性がありますが、実際の保存形式の違いについては次のようになります。
からhttps://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/key-formats-natively.html
PuTTY キー形式の利点は次のとおりです。
- 公開鍵の半分は平文で保存される。OpenSSHの秘密鍵フォーマットは鍵ファイル全体を暗号化する、つまり、クライアントはキーを使って何かを行う前にパスフレーズを尋ねなければなりません。特に、クライアントがキーを使って何かを行う前にパスフレーズを尋ねなければなりません。オファー認証のために公開鍵をサーバーに渡します。PuTTY のフォーマットでは、公開鍵はプレーンテキストで保存され、秘密鍵の半分だけが暗号化されます。つまり、公開鍵を自動的にサーバーに送信し、サーバーがその鍵による認証を受け入れるかどうかを判断できます。また、パスフレーズは必要な場合にのみ要求されます。OpenSSH
は、秘密鍵ファイルと一緒に存在するファイルをこの目的で読み取ると思います.pub
が、これは便利であると同時に混乱の原因にもなります (秘密鍵ファイルを置き換えて、古いファイルをその横に残し.pub
、その結果生じる SSH 認証プロセスに非常に混乱している人を見たことがあります)。- キーは完全に改ざん防止されています。公開鍵を平文で保存する鍵形式は、改ざん攻撃に対して脆弱である可能性があります。改ざん攻撃では、鍵の公開部分が改ざんされ、改ざんされた鍵で作成された署名によって秘密部分の情報が漏洩する可能性があります。このため、PuTTY のキー形式には、パスフレーズからキー化された MAC (メッセージ認証コード) が含まれており、キーの公開部分と秘密部分をカバーしています。このように、公開鍵を平文で利用できるという利便性を提供すると同時に、改ざん攻撃の試みを即座に検出し、他の鍵形式では見られないセキュリティと利便性の組み合わせを実現します。副次的な利点として、MAC は鍵のコメントもカバーするため、誰かが 2 つの鍵を交換してコメントを入れ替えた場合に起こり得るあらゆる悪事を防止できます。OpenSSH
の公開鍵を暗号化したままにするアプローチかもしれないこの種の攻撃に対してもある程度セキュリティを提供しますが、適切な保護を提供できるかどうかは不明です。機密性のために設計された暗号化では、暗号化されたデータが攻撃者によって都合よく変更される可能性がしばしばあります。真の整合性保護には、まさにそれを行うために設計された真の専用 MAC が必要です。
[強調追加した]