Linuxで.ppkキーをOpenSSHキーに変換する方法は?


188

Windowsでputtygenの下で.ppkを変換することは可能ですが、Linuxでそれを行う方法はありますか?これは可能ですか?

回答:


275

パテでやる。

  • Linux:パッケージマネージャーで、PuTTY(またはより最小限のPuTTYツール)をインストールします。

    • Ubuntu sudo apt-get install putty-tools
    • Debianライク apt-get install putty-tools
    • RPMベース yum install putty
    • ジェンツー emerge putty
    • ArchLinux sudo pacman -S putty
  • OS X:Homebrewをインストールしてから実行brew install putty

キーを何らかのディレクトリ、たとえばホームフォルダに配置します。PPKキーをSSHキーペアに変換する:キャッシュ検索

秘密鍵を生成するには:

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

そして公開鍵を生成するには:

puttygen id_dsa.ppk -O public-openssh -o id_dsa.pub

これらのキーを移動~/.sshし、秘密キーのアクセス許可がプライベートに設定されていることを確認します。

mkdir -p ~/.ssh
mv -i ~/id_dsa* ~/.ssh
chmod 600 ~/.ssh/id_dsa
chmod 666 ~/.ssh/id_dsa.pub

すでに「git clone」操作を実行しようとしている場合は、これも行う必要があります

chmod 666 ~/.ssh/known_hosts

こんにちは、私はすでにそれが再び公開鍵を作成する必要がある.pubファイルを持っている
アミットベラ

1
Windowsでそれを行う方法を探してここに来た場合は、「puttygen yourkey.ppk」を実行し、「変換」メニューで「OpenSSHキーをエクスポート」を選択して秘密鍵を取得します。
ライアン

1
あなたは、公開鍵を変換するには、秘密鍵を必要としない+あなたはパテをインストールする必要はありませんので、@jousからのソリューションは非常に良くある
トビ

このキーを./ssh/configファイル に追加する必要がありましたHost mysite.com Hostname mysite.com IdentityFile ~/.ssh/id_dsa IdentitiesOnly yes
-vladkras

一部の楕円曲線形式(ECDSなど)は、まだベータ版のパテツールでのみ利用可能です。
ダニエルW.

39
ssh-keygen -i -f id_dsa_1024_a.pub > id_dsa_1024_a_openssh.pub
  • -i flagsはopenssh形式以外からのインポートです
  • -f フラグは入力ファイルから読み取ることを意味します

出典:burnz.wordpress.comのブログ投稿


17
.ppkファイルは完全なキーペアです。上記のコマンドまたはブログ投稿はそれには当てはまらないと思います。
ピーターベッカー

2
puttygenの[公開キーの保存]ボタンを使用すれば機能するということです。ssh-keygenは、「---- BEGIN SSH2 PUBLIC KEY ----」マーカーがないため、真の.ppkファイルを理解しません。ただし、パブリックキーは.ppkファイルで「Public-Lines:..」行と「Private-Lines:..」行の間で見つけることができます。
ジョー

1
これは公開鍵ファイルでうまくいきました-puttygenは秘密鍵を必要とするようです。base-64の部分を単一の行に再配置するだけだったようです
-Jasen

2
これは私が変換をしたいと思う理由である、秘密鍵をカバーしていないようです、私はすでにどこかに保存された公開鍵を持っている...
ゲルトファンデンベルグ

ええ、私が見たppkファイルには適切なマーカーがあり、これはうまく機能しています
タイラー

5

秘密鍵を取得します。

puttygenで.ppkファイルを開きます。

puttygen ~/.ssh/id_dsa.ppk

opensshとしてエクスポート:

変換→OpenSSHキーのエクスポート

公開鍵を取得します。

puttygenで秘密鍵の前のように開き、公開鍵はOpenSSH authorized_keysファイルに貼り付けるための公開鍵の下にあり ます


4

Dockerコンテナを用意して、生活をシンプルにしました。

docker run --rm \
           --volume=/path/to/file.ppk:/tmp/id_dsa.ppk \
           --volume=/path/to/output:/tmp/out/ \
           czerasz/putty-tools

どこ:

  • /path/to/file.ppk -ppkファイルへのローカルパス
  • /path/to/output -秘密鍵と公開鍵を配置する場所へのローカルパス

1
すばらしいです。画像のthx!ただし、その間--volume=/path/to/file.ppk:/tmp/id.ppkではなくid_dsa.ppk
-pHiL
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.