PuTTYgen を使用して生成された SSH キーペア (Windows) を ssh-agent とキーチェーンで使用されるキーペア (Linux) に変換する方法
質問
PuTTYgen を使用してキー ペアを生成し、Pageant を使用してログインしているため、システムの起動時にパスフレーズを 1 回だけ入力する必要があります。
Linux でこれを実現するにはどうすればよいですか?聞いたことがある keychain
しかし、別のキー ペア形式が使用されていると聞きました。Windows キーを変更したくないので、Windows と Linux の両方で同じ方法でシームレスに接続できればいいのにと思います。
解決
puttygen
秘密キーの OpenSSH 互換形式へのエクスポートをサポートします。その後、OpenSSH ツールを使用して公開キーを再作成できます。
- PuttyGen を開く
- 「ロード」をクリックします
- 秘密鍵をロードします
- に行く
Conversions->Export OpenSSH
秘密キーをエクスポートします - 秘密鍵を次の場所にコピーします
~/.ssh/id_dsa
(またはid_rsa
). 次を使用して、RFC 4716 バージョンの公開キーを作成します。
ssh-keygen
ssh-keygen -e -f ~/.ssh/id_dsa > ~/.ssh/id_dsa_com.pub
RFC 4716 バージョンの公開キーを OpenSSH 形式に変換します。
ssh-keygen -i -f ~/.ssh/id_dsa_com.pub > ~/.ssh/id_dsa.pub
他のヒント
ユーザーからの PuTTY 形式の公開キーしかない場合は、次のように標準の openssh 形式に変換できます。
ssh-keygen -i -f keyfile.pub > newkeyfile.pub
参考文献
- ソース:
http://www.treslervania.com/node/408 - 鏡: https://web.archive.org/web/20120414040727/http://www.treslervania.com/node/408.
記事のコピー
忘れがちなのでここに書いておきます。非皆さん、歩き続けてください。
Windows でキーを作成する最も一般的な方法は、Putty/Puttygen を使用することです。Puttygenは、Linuxの秘密鍵を以下に変換する便利なユーティリティを提供している。 パテ形式。しかし、まだ対処されていないのは puttygenを使った公開鍵は、Linuxサーバーでは動作しない。ウィンドウズ いくつかのデータを異なる領域に配置し、改行を加える。
ソリューション:公開鍵の作成画面で puttygenで鍵ペアを作成し、公開鍵をコピーしてテキストに貼り付けます。 ファイルの拡張子は.pubです。システム管理者の時間を節約することができます。 このような投稿を読むのは悔しい。
しかし、シスアドの皆さんは、次のような奇妙なキーファイルを必ず手に入れます。 認証ログには、「キーが見つかりません。 のパスワードが必要だ;他の人のキーは問題なく動いているのに。 このキーを15回ユーザーに送り返したことになる。
ssh-keygen -i -f keyfile.pub > newkeyfile.pub
既存の puttygen 公開キーを OpenSSH 形式に変換する必要があります。
新しいバージョン(私は0.64です)次の図に示すように、.ssh/authorized_keys
ファイル内のLinuxシステムに貼り付けることがOpenSSHの公開鍵を表示することができます:
また、あなたは* nixのシステム上で使用することができますputtygen
PuTTYのフォーマットされたキーファイルから秘密鍵と公開鍵を取得したい場合。ほとんどのaptベースのシステムの場合puttygen
はputty-tools
パッケージの一部です。
PuTTYのフォーマットされたキーファイルから秘密鍵を出力ます:
$ puttygen keyfile.pem -O private-openssh -o avdev.pvk
公開鍵の場合:
$ puttygen keyfile.pem -L
sudo apt-get install putty
これは自動的にputtygenをツールをインストールします。
今PPKファイルを変換するには、端末で次のコマンドを実行SSHコマンドで使用される
puttygen mykey.ppk -O private-openssh -o my-openssh-key
次に、あなたがSSH経由で接続することができます:
ssh -v user@example.com -i my-openssh-key
<のhref = "http://www.graphicmist.in/use-your-putty-ppk-file-to-ssh-remote-server-in-ubuntu/#comment-28603" のrel = "noreferrer" > http://www.graphicmist.in/use-your-putty-ppk-file-to-ssh-remote-server-in-ubuntu/#comment-28603 の
私は最近、この問題を抱えていました。私はそれが8年前からだ使用してきたように、私は私の.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;
非常に迅速かつポイントに、パテが持っていたすべてのファイルのための仕事を得ました。それはパスワードを使用して、キーが見つかった場合、それが停止し、最初にそのキーのパスワードを要求し、その後継続します。
これは、Linuxの下であなたの鍵を作成して、PuTTYのフォーマットにキーを変換するために、PuTTYgenをを使用する方が簡単でしょう。
TCSgrad が (数年前に) 尋ねようとしていたのは、Linux を Windows マシンと同じように動作させる方法だったと思います。つまり、秘密キーの復号化されたコピーを保持するエージェント (ページェント) が存在するため、パスフレーズの入力は 1 回だけで済みます。次に、SSH クライアントの putty は、公開鍵が「承認済み」としてリストされているマシンにパスワード プロンプトなしでログインできます。
これに相当するのが Linux です。 SSHクライアントとして動作する, には、復号化された秘密鍵を保持するエージェントがあり、TCSgrad が「ssh host」と入力すると、ssh コマンドが秘密鍵を取得し、パスワードの入力を求められることなく実行されます。もちろん、ホストは ~/.ssh/authorized_keys に公開キーを保持している必要があります。
Linux でのこのシナリオの類似点は、ssh-agent (ページェントの類似点) と ssh-add (ページェントへの秘密キーの追加の類似点) を使用して実現されます。
私にとってうまくいった方法は次のとおりです。ssh-agent $SHELL この$SHELLは、エージェントを走らせ、走らせ続けるために必要な魔法のトリックだった。ネットのどこかでそれを見つけて、壁に頭を打ちつける数時間の作業が終わりました。
これで、ページェントに似たものが実行され、キーがロードされていないエージェントが実行されました。
タイピング ssh-add を実行すると、~/.ssh にあるデフォルトの ID ファイルにリストされている秘密鍵が(デフォルトで)追加される。
より詳細な情報が記載された Web 記事を見つけることができます ここ