opensshキーとputtyキーの違いは何ですか?


48

ssh-keygen(「ssh」パッケージ)がputtygen(「putty」パッケージ)とは異なるキーを生成することがわかりました。

ssh-keygen一部のsshサーバーで公開鍵と秘密鍵を作成すると、鍵が受け入れられません。puttygen1つのサーバーのみでキーを作成すると、それを受け入れます。

Linuxリポジトリが一般的なソリューション(パッケージ)を提案しないのはなぜですか?パテで動作するキーを作成する別のパッケージssh-3.2.9.1を見つけました。しかし、なぜSSHには便利なソリューションがないのでしょうか?


1
手始めに、PuTTYGenはキーを変換するために明示的に提供します。そのため、OpenSSHとPuTTY がキーの保存に使用するネイティブ形式は異なります。ただし、サポートされているアルゴリズムには互換性があります。私が持っている推測は、PuTTYGenで生成されたキーまたはRSA-1のようなものを選択したビットのビット数(たとえばDSA 1024ビットを必要とするようです)を与えることができるフィールドにファンキーな値を入力したことです最近ではほとんどのサーバーが無効になります。残念ながら、この質問には実際にあなたが何を試みて何を期待したかが記載されていません。
0xC0000022L

回答:


47

OpenSSHは、SSHプロトコルの事実上の標準実装です。PuTTYとOpenSSHが異なる場合、PuTTYは互換性がありません。

ssh-keygenデフォルトのオプションを使用してOpenSSHでキーを生成すると、事実上すべてのサーバーで機能します。そのようなキーを受け入れないサーバーは、SSHの別の実装を使用したアンティークであるか、奇妙な制限的な方法で構成されます。デフォルト以外のタイプのキーは、一部のサーバーではサポートされない場合があります。特に、ECDSAキーはセッションの確立を非常にわずかに速くしますが、OpenSSHの最新バージョンでのみサポートされます。

PuTTYは異なるキーファイル形式を使用します。独自の形式とOpenSSHの形式を変換するツールが付属しています.ppk

このssh-3.2.9.1 は、独自の異なる秘密鍵形式を持つ商用製品です。OpenSSHの代わりに使用する理由はありません。互換性が低くなる可能性があり、支払いが必要です。また、使用方法についてのチュートリアルはほとんどありません。


24

ほとんどのLinuxディストリビューションはLinuxでputty利用できます。puttyLinux側にインストールしてputtygen、.ppkファイルを通常のsshスタイルのキーファイル(ファイル名に.pemが付いていなくても、PEMファイルと呼ばれる)に変換するために使用できます。

puttygen id_dsa.ppk -O private-openssh -o id_dsa

注:を使用puttygenして、sshスタイルのPEMファイルをにインポートして戻すこともできますputty

PuTTYの作成者は、putty / ssh 2キー認証で使用される基礎となるセキュリティを構成する公開キーと秘密キーが単一の独自の.ppkファイルに保存されるように、シンプルさを選択しました。通常、これらのキーはsshによって2つの個別のファイルとして維持されます。

Linuxでは、キーファイルは通常、.sshディレクトリに保持されます。

変換プロセスの概要は、PEMをPPKファイル形式に変換するというタイトルのこのStack Overflowの質問にあります

puttyの作者は、puttyユーザーマニュアルで.ppkファイルを使用するための理論的根拠についても説明しています。セクション8.2.12でそれについて読むことができます。


私のLinuxには時代遅れで脆弱なSSH-1があります(パテを使用しない場合)。そして手頃な価格ですか?SSH-1の脆弱性はウィキペディア
-YarLinux

どこで入手したかわかりません。いいえ、大丈夫です。どのバージョンのLinuxを使用していますか?どのLinux Distroを使用していますか?次のコマンドを実行して、Linuxバージョンを確認しますuname -a。Linuxディストリビューション:lsb_release -a
slm

Ubuntu 12.04を使用します。SSH-2にはさまざまな形式がありますか?パッケージの名前と「ssh」コマンドで混乱しました。
YarLinux

そうですか。参照しているsshツールは通常、opensshと呼ばれるパッケージの一部です。このソフトウェアのバージョンは、参照しているSSH-1およびSSH-2とは関係ありません。その用語(SSH-1およびSSH-2)は、作業しているキーファイルのタイプを指します。このバージョンのファイルは、opensshの最新バージョンを使用している限り、問題になることはありません。
slm

キーには3つの異なる形式がありますか?OpenSSH、ssh.com、PuTTY?
YarLinux

12

どちらも「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が必要です。

[ 強調追加]

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.