Macで秘密鍵を使いターミナルでssh接続する場合、PuTTY形式の鍵認証ファイルをOpenSSH形式に変換する必要があります。
検索するとたくさんの記事が出てくるんですが「 homebrewでPuttyを〜 」って内容が多いですね。
いや、そもそも『Putty 』って何? 『 homebrew 』って何? そんな方もいらっしゃると思うのでそのあたりの説明も踏まえてPuTTY形式の鍵認証ファイルをOpenSSH形式に変換していく方法をXcodeのインストールから順を追って紹介していきたいと思います。
CONTENTS
1.前提条件
Xcodeがインストールされている
XcodeとはAppleから出されているアプリなどを開発するためのツールです。
もしインストールされてない場合はApple Storeから無料でダウンロードが可能です。
サイト内のリンクからApple Storeをひらけます。
Xcodeコマンドラインがインストールされている
Xcodeを開きます。上部メニューのXcode(リンゴマークの横)→Preferences…の順にクリック。
以下のような画面が開くので一番右のLocationsをクリック。
Command Line ToolsのバージョンがXcodeと合っていればインストールされています。
Command Line Toolsをインストールした記憶がないので最新版の Xcodeをダウンロードすれば一緒にインストールされているような気がします。(すいません、記憶があやふやで自信ないです。。)
バージョンが違ったり、そもそもインストールされていない場合はDownloads for Apple Developersよりダウンロードが可能です。
種類が多いので自分のOS、Xcodeのバージョンが合ったものをダウンロード、インストールします。
ここまで出来ていればまず前提条件をクリアです。
2.homebrewのインストール
前提条件がクリア出来ていれば次に『 homebrew 』の確認をします。
ちなみに『 homebrew 』はざっくりいうとターミナルとかでソフトを簡単にインストールするためのソフトです。
homebrewがインストールされているか確認をする
まず、Macのターミナルを開いて以下のコマンドを入力してください。
which brew
ディレクトリが表示されればインストールされています。
そうでない場合はまずhomebrewをインストールする必要があるので以下のコマンドを入力(コピペでOK)。
※2017年7月現在ではこのコマンドですが、変わる可能性もあるので念のため公式サイトでもご確認をお願いします。
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
入力するとズラズラーッとログが出てきます。途中『 Enterを押すこと 』と、『 パスワードの入力 』を一回ずつ求められるので対応します。
そしてターミナルを開いた時のようにユーザー名$ の表示が出てきたらインストールは完了です。
homebrewを使う前に問題がないかどうかチェックする
実際にhomebrewを使う前に念のため問題がないかどうかターミナルで以下のコマンドを入力します。
brew doctor
このような表示が出れば問題なし。そのままお使いいただけます。
Your system is ready to brew.
Warningと出ている場合はその時は問題がなくても後々困る場合があるので対応しておいた方が無難です。
私がインストールした際もいくつかのエラーがあったのですが解決にはこちらのサイトを参考にさせていただきました。
brew doctorのwarningを解決する
homebrew brew doctorトラブルシューティング
3.Puttyのインストール
ここまで来ればあと少しです。ターミナルで以下のコードを入力して『 Putty 』をインストールしましょう。これで準備完了。
brew install putty
PuTTY形式の鍵認証ファイルをOpenSSH形式に変換
今回は拡張子.ppkがついたPuTTY形式の鍵認証ファイルを拡張子.pemがついたOpenSSH形式に変換に変換してみましょう。
コマンドは以下の通り。※半角スペースに注意。
puttygen ファイル名.ppk -O private-openssh -o ファイル名.pem
ちなみにファイルを指定する際はパスを記述する必要があります。
puttygenの後に半角スペースを入れたあと変換するファイルをドラッグ&ドロップ。そうするとパス、ファイル名を記述してくれます。
デスクトップのファイルをドラッグ&ドロップした場合はこんな感じです。
ファイル名のあとに半角スペース、-O private-openssh -oと入力してまた半角スペースで出力するファイル名。
出力するファイルも場所を指定できます。パスを記載せずにファイル名.pemとだけ入れてenterを押すとHOME(ユーザー名)直下に出力されます。
その際、パスワードが求められますがログインしているパスワードではなくssh接続する方のパスワードなのでご注意を。
xcodeからのインストールだと手間がかかりましたが使えば使うほど便利なツールですので入れておいて損はないと思います。