AWS EC2で Linuxサーバーを構築したときなど、パスワードのような短いキーフレーズではなくpemという拡張子のファイルを秘密鍵としてダウンロードしてからsshでログインすることが一般的になっています。pemファイル(Privacy Enhanced Mail)は、Base64で符号化された文字列が入ったテキストファイルです。最初の行には「—–BEGIN RSA PRIVATE KEY—–」が入っています。このファイルを利用して作成したEC2サーバーへsshログインが出来ます。下記がmacOSを使ったsshでのログイン時のコマンドです。
ssh -i "***.pem" ユーザー@*.ap-northeast-1.compute.amazonaws.com
pemファイルがあればmacOSでは不自由なく作成したEC2へログインできるのですがWindowsの場合このpemファイルをppkファイル(PuTTY Private Key files)に変換する必要があるようです。このppkファイルへの変換ツールはPuTTYというツールでインターネットからダウンロードできます。PuTTYのダウンロードは下記URLです
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
64ビット版インストーラー 2020年9月現在putty-64bit-0.74-installer.msiファイルをダウンロードしダブルクリックでインストールすると「C:\Program Files\PuTTY」にいくつかのexe実行ファイルがインストールされていることが確認できます。Windows 10のアプリ一覧からPuTTYgenを実行します。
実行すると下のような[PuTTYgen Key Generator]画面が出てきます。その画面の中央少ししたに[Load]と書かれたボタンがあるのでクリックします。
オープンダイアログが出てきてpemファイルを選択しますがオープンダイアログは拡張子ppkしか選択できない状態なので画面下の[ファイル名]を「*.pem」に変更しエンターキーを押します。(エンターキーはパンパン叩かない)
ファイル一覧に目的のpemファイルが表示されたら「開く」ボタンをクリックします。成功した場合Successfullyダイアログが表示されいます。
[Save Private Key]ボタンをクリックしppkファイルを保存します。
ppkファイルの作成が出来たらコマンドプロンプトから下記のように「C:\Program Files\PuTTY\plink.exe」を用いテストを行います。
"C:\Program Files\PuTTY\plink.exe" -ssh ユーザー名@EC2サーバーIP -P 22 -i "ファイル名.ppk" -N -L 3307:127.0.0.1:3306
下のように「Access granted. Press Return to begin session.」と表示されればOKです。