PuTTYgen を使用して生成された SSH キーペア (Windows) を ssh-agent とキーチェーンで使用されるキーペア (Linux) に変換する方法

StackOverflow https://stackoverflow.com/questions/2224066

質問

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

Linux でこれを実現するにはどうすればよいですか?聞いたことがある keychain しかし、別のキー ペア形式が使用されていると聞きました。Windows キーを変更したくないので、Windows と Linux の両方で同じ方法でシームレスに接続できればいいのにと思います。

役に立ちましたか?

解決

puttygen 秘密キーの OpenSSH 互換形式へのエクスポートをサポートします。その後、OpenSSH ツールを使用して公開キーを再作成できます。

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

    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
    

見る これ そして これ 詳細については。

他のヒント

ユーザーからの PuTTY 形式の公開キーしかない場合は、次のように標準の openssh 形式に変換できます。

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

参考文献

記事のコピー

忘れがちなのでここに書いておきます。非皆さん、歩き続けてください。

Windows でキーを作成する最も一般的な方法は、Putty/Puttygen を使用することです。Puttygenは、Linuxの秘密鍵を以下に変換する便利なユーティリティを提供している。 パテ形式。しかし、まだ対処されていないのは puttygenを使った公開鍵は、Linuxサーバーでは動作しない。ウィンドウズ いくつかのデータを異なる領域に配置し、改行を加える。

ソリューション:公開鍵の作成画面で puttygenで鍵ペアを作成し、公開鍵をコピーしてテキストに貼り付けます。 ファイルの拡張子は.pubです。システム管理者の時間を節約することができます。 このような投稿を読むのは悔しい。

しかし、シスアドの皆さんは、次のような奇妙なキーファイルを必ず手に入れます。 認証ログには、「キーが見つかりません。 のパスワードが必要だ;他の人のキーは問題なく動いているのに。 このキーを15回ユーザーに送り返したことになる。

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

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

PuTTYgenをする

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

ここに画像の説明を入力します

また、あなたは* nixのシステム上で使用することができますputtygen PuTTYのフォーマットされたキーファイルから秘密鍵と公開鍵を取得したい場合。ほとんどのaptベースのシステムの場合puttygenputty-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 の

私はLinux用RemminaにLinux用パテから動いていたとして

私は最近、この問題を抱えていました。私はそれが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をを使用する方が簡単でしょう。

PuTTYのFAQ:A.2.2

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 記事を見つけることができます ここ

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top