web-dev-qa-db-ja.com

PuTTYgen(Windows)を使用して生成されたSSH鍵ペアを、ssh-agentおよびKeychain(Linux)が使用する鍵ペアに変換する方法

私はPuTTYgenを使用してキーペアを生成し、Pageantを使用してログインしていたので、システムの起動時に一度だけパスフレーズを入力する必要があります。

Linuxでこれを実現するにはどうすればいいですか。私はkeychainを聞いたことがありますが、私はそれが異なるキーペアフォーマットを使用していると聞いています - 私は私のWindowsキーを変更したくないです。

424
TCSGrad

puttygenはあなたの秘密鍵をOpenSSH互換のフォーマットにエクスポートすることをサポートしています。その後、OpenSSHツールを使用して公開鍵を再作成できます。

  1. 開いているPuttyGen
  2. クリックロード
  3. あなたの秘密鍵をロードする
  4. Conversions->Export OpenSSHに行き、あなたの秘密鍵をエクスポートしてください
  5. 秘密鍵を~/.ssh/id_dsa(またはid_rsa)にコピーします。
  6. ssh-keygenを使用してRFC 4716バージョンの公開鍵を作成します。

    ssh-keygen -e -f ~/.ssh/id_dsa > ~/.ssh/id_dsa_com.pub
    
  7. RFC 4716バージョンの公開鍵をOpenSSH形式に変換します。

    ssh-keygen -i -f ~/.ssh/id_dsa_com.pub > ~/.ssh/id_dsa.pub
    

詳しくは、 this および this を参照してください。

660
Kaleb Pederson

あなたが持っているのがPuTTYスタイルのフォーマットのユーザーからの公開鍵であるなら、あなたはそのように標準のopensshフォーマットに変換することができます:

ssh-keygen -i -f keyfile.pub > newkeyfile.pub

参考文献

記事の写し

私はこれを忘れているのでそれをここに書くつもりです。非オタク、歩き続けるだけ。

Windowsでキーを作成する最も一般的な方法は、PuTTY/Puttygenを使用することです。 Puttygenは、Linuxの秘密鍵をPuTTY形式に変換するためのきちんとしたユーティリティを提供します。しかし、対処されていないのは、puttygenを使用して公開鍵を保存すると、Linuxサーバーでは機能しないということです。 Windowsはいくつかのデータをさまざまな領域に配置し、改行を追加します。

解決策:puttygenで鍵のペアを作成する際に公開鍵の画面に移動したら、公開鍵をコピーして拡張子.pubの付いたテキストファイルに貼り付けます。あなたはこのようなポストを読んで欲求不満のsysadmin時間を節約します。

しかし、sysadminsは、キーが見つからないこと、パスワードを試すことを除いて、認証ログにエラーメッセージが表示されないような変わったキーファイルを必ず入手します。たとえ他の誰かの鍵がうまく機能していても、あなたはこの鍵を15回ユーザーに送り返しました。

ssh-keygen -i -f keyfile.pub > newkeyfile.pub

既存のputtygen公開鍵をOpenSSH形式に変換する必要があります。

144
bukzor

次の図に示すように、 PuTTYgen (mineは0.64)の新しいバージョンでは、OpenSSH公開鍵を.ssh/authorized_keysファイルにLinuxシステムに貼り付けることができます。

enter image description here

133
Zac

あるいは、PuTTY形式の鍵ファイルから秘密鍵と公開鍵を取得したい場合は、* nixシステムでputtygenを使用できます。ほとんどのaptベースのシステムでは、puttygenPuTTY-toolsパッケージの一部です。

PuTTY形式の鍵ファイルから秘密鍵を出力します。

$ puttygen keyfile.pem -O private-openssh -o avdev.pvk

公開鍵の場合

$ puttygen keyfile.pem -L

48
John Jawed
Sudo apt-get install PuTTY

これで自動的にputtygenツールがインストールされます。

SSHコマンドで使用するためにPPKファイルを変換するために、ターミナルで以下を実行してください。

puttygen mykey.ppk -O private-openssh -o my-openssh-key

それから、SSH経由で次のように接続できます。

ssh -v [email protected] -i my-openssh-key

http://www.graphicmist.in/use-your-PuTTY-ppk-file-to-ssh-remote-server-in-ubuntu/#comment-28603

20
Purnendu Singh

私は最近、Linux用のPuTTYからLinux用のRemminaに移行していたときに、この問題を抱えていました。だから私は私が.PuTTYディレクトリにPuTTY用のPPKファイルをたくさん持っています。これには、bashシェルですべてのファイルを処理するための単純なforコマンドを使用しました。

cd ~/.PuTTY
for X in *.ppk; do puttygen $X -L > ~/.ssh/$(echo $X | sed 's,./,,' | sed 's/.ppk//g').pub; puttygen $X -O private-openssh -o ~/.ssh/$(echo $X | sed 's,./,,' | sed 's/.ppk//g').pvk; done;

非常に速くそして要点を言えば、PuTTYが持っていたすべてのファイルに対して仕事を終えた。パスワード付きの鍵が見つかった場合は、まずその鍵のパスワードを要求してから続行します。

14
jfreak53

Linuxでキーを作成し、PuTTYgenを使用してキーをPuTTY形式に変換する方がおそらく簡単です。

PuTTY Faq:A.2.2

8
Bradley Kreider

TCSgradが(数年前に)尋ねようとしていたのは、LinuxをWindowsマシンのように動作させる方法だったと思います。つまり、秘密鍵の復号化されたコピーを保持するエージェント(ページェント)があるため、パスフレーズは1回だけ入力する必要があります。それから、SSHクライアントPuTTYは、自分の公開鍵がパスワードを要求されることなく「許可」としてリストされているマシンにログインできます。

これに対する類似点は、TCSgradが "ssh Host"とタイプしたときにsshコマンドが自分の秘密鍵を取得してプロンプトを表示せずに移動するように、Linux、 sshクライアントとして機能する にはエージェントが復号化秘密鍵を保持するパスワードを入力します。ホストは、もちろん公開鍵を〜/ .ssh/authorized_keysに保持している必要があります。

このシナリオに対するLinuxの類似物は、ssh-agent(ページェント類似物)およびssh-add(秘密鍵をページェントに追加する類似物)を使用して実現されます。

私のために働いた方法は、使用することでした:$ ssh-agent $ Shellその$ Shellは私がエージェントを実行させそして実行し続けるために必要とした魔法のトリックでした。私はネットのどこかでそれが壁に向かって私の頭を打つことの数時間を終えたことがわかりました。

これで、ページャントの類似体、つまりキーがロードされていないエージェントが実行されました。

$ ssh-addを単独で入力すると(デフォルトで)〜/ .sshのデフォルトのIDファイルにリストされているプラ​​イベートキーが追加されます。

より多くの詳細を含むWeb記事を見つけることができます ここ

6
kovacsbv