pemファイルとppkファイルの相互変換

最近pemファイルやppkファイルを使う機会が多いのでそれらについての説明と、相互の変換方法についてまとめてみました。

いいから早く変換方法教えろ!!って方はこちらから進んでください。

pemファイルとは

pemファイルとは、暗号化鍵や証明書をいれておくコンテナです。
わかりにくければ、暗号化鍵や証明書を入れておく箱だよーってことで覚えてもらえればいいです。
「Privacy Enhanced Mail」を略してpemです。
コレ自体はテキストエディタなどで開いてもらえればもう少し理解が深まると思います。
こんな感じになっているはずです。

—–BEGIN RSA PRIVATE KEY—–
base64エンコードされた秘密鍵
—–END RSA PRIVATE KEY—–
—–BEGIN CERTIFICATE—–
base64エンコードされた証明書
—–END CERTIFICATE—–

この中ではBEGINとENDで囲まれた文字が1つ以上あります。
これらが証明書であったり秘密鍵であったりします。

りょーへー
りょーへー

複数入れられるから、箱のイメージなんやな。

ppkファイルとは

これはPuTTYというソフトで使われる(またはフォーマットが定義された)秘密鍵になります。
PuTTY Private Key filesの略でppkです。

これは略していない名称の通り、秘密鍵が入っているファイルなので、
pemとは違いコンテナ(箱)では無いので注意してください。

pem ←→ ppk の相互変換

今回は
秘密鍵だけが含まれているpemファイルとppkファイルを相互に変換するための方法を説明
したいと思います。

というのも昨今ではAWS(Amazon Web Service)が非常に良く利用されるようになっています。
AWSと言えば、2019年8月23日に障害が発生したことがありましたね。
具体名は出しませんが、その障害で有名なサービスやゲームなどが接続できなくなったりしました。
それだけ多くの企業が採用しているクラウドサービスなんですね。

そのAWSでpemファイルとppkファイルが利用されるケースが多くなってきています。

秘密鍵が含まれるpemファイル

そのAWSでEC2(Amazon Elastic Compute Cloud)を使ってサーバを立てると、キーペアを生成する必要があります。その際に生成されるキーが秘密鍵を含んだpemファイルとして生成されます。

ppkファイルはどこで使うの?

前述のEC2で立てたサーバに対してファイルを送り込もうとした時に、SCPを使ってファイルを送るのがスタンダードな手段だと思います。
Windowsがクライアントの場合は、WinSCPを使ってSCPをする人が多いと思いますが、このWinSCPではpemファイルは使えず、ppkファイルを使ってEC2サーバに接続する必要があります。

PuTTYgenのダウンロードとpem,ppkの変換

PuTTYgen のダウンロード

まずは変換ソフトをダウンロードします。
変換ソフトは「PuTTYgen」です。
以下のページから「puttygen.exe」を探して、ダウンロードしてください。
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
32ビット版と64ビット版があるので、ご自身のパソコンに合ったものをダウンロードしてください。

PuTTYgen の起動

ダウンロードしたPuTTYgen.exe  を起動します。
警告が出る場合がありますが、その場合は「実行」を選択してください。

pem → ppk の変換

起動すると以下の画面が出てきますので、まずはpemファイルの読み込みを行います。

「Load」ボタンを押下すると、読み込むpemファイルの選択画面になります。

ファイルの種類が「ppk」ファイルを選択するようにフィルタリングされているので、
すべてのファイルを選択できるように変更する必要があります。

目的のpemファイルが表示されたら、そのpemファイルを選択してダブルクリックします。
(pemファイルを選択して、開くボタンを押しても大丈夫です。)

するとこのような通知画面が表示されます。
これはそのまま「OK」ボタンを押してください。

その後、この画面が表示されます。
モザイクを掛けているところはKey情報などが表示されています。

先程の通知画面に書いている通りなんですが、「Save private key」のボタンを押すと、ppkファイルの保存場所を確認する画面に移ります。警告画面が出ますが、そのまま「はい」を押します。

ppkファイルを保存する画面では、保存するppkファイル名を入力して、保存ボタンを押せば、ppkファイルが出来上がります。

ppk → pem の変換

ppkファイルからpemファイルを生成することもできます。

先ほどと同じく、「Load」ボタンを押します。

今回はppkでフィルタが掛かっているので目的のppkファイルがある場所に進んで、ppkファイルを選択します。

pemのときと同じく、key情報が表示されますが、ここからが少し違います。
メニューの「Conversions」から「Export OpenSSH key」を押します。

ここでも警告が出ますが、そのまま「はい」を押します。

pemファイルを保存する画面が表示されるので、pemファイル名を入力し、保存ボタンを押します。

りょーへー
りょーへー

これでpemファイルとppkファイルの相互変換は完了やで。

ppkファイルはいつ使うのか

りょーへー
りょーへー

ppkファイル作ったけど、どこでつかうんや。。

ppkファイルがよく使われるのは、sshができるサーバに対してファイルを送るときにscpを使う。
で、そのscpをするときにWinSCPを使うことが多い。

ただ、WinSCPにはpemファイルを使うことができへん。
でも、ppkファイルが使えるので、そこでさっきまでのやり方で作ったppkファイルの出番!ってわけ。

りょーへー
りょーへー

ppkファイルは作ったけど、WinSCPでppkを使うときはどうするんや

それについては

Winscpでpemファイルが使えない!
WinSCPはWindowsで定番のSCPソフトだと思います。一番簡単にSCPできるのはIP(またはドメイン)を入れて、ユーザー名入れて、パスワード入れて、接続!のパターンだと思いますが、それについては皆さんパパっとできているのではないで...

の記事で説明していますので、そちらをご覧ください!


アプリ IT AWS
りょーへーをフォローする

りょーへーぶろぐ