はじめに:CPIの場合
**対象サーバーが「CPIレンタルサーバー ACE01」の場合は、この記事の方法では接続できません。**2017年11月現在、SFTPの接続はパスワード方式のみとなっているためです。
「SSHでは接続できるのにSFTPでは接続できない」という状況になるのでかなりハマりました。
コントロールパネルからFTPアカウント(SFTPアカウントと共有です)を作成してください。
MacOS用のFTPクライアント「Transmit」は転送が早く、大量ファイルの管理がしやすいので重宝しています。
パニック - Transmit - Mac OS X FTP + SFTP + S3 アプリケーションの完成形
「Transmit」はセキュリティ上強く推薦されている、鍵認証方式のSFTP接続にも対応していますが、いざ秘密鍵を登録しようとすると「ファイルは未サポートの形式です。」というエラーが出てしまい登録できません。
これは、Transmitが秘密鍵ファイル(ここではRSA)をそのまま扱うことができないためです。一般的なOpenSSL証明書の形式である「PEM形式」に変換すると登録できるようになります。
※ドットではじまる非公開ファイルが、Finderで見えるよう設定している前提で解説しています。
PEM形式のファイルを作成する
まず、受け取った秘密鍵ファイルを以下の場所へ移動してください。
*/Users/(MacOSのユーザー名)/.ssh/*
「Terminal(いわゆる、黒い画面)」を起動し、以下のコマンドを入力して、秘密鍵を置いたディレクトリへ移動してください。
cd /Users/(MacOSのユーザー名)/.ssh/
続いて、以下のコマンドを入力してください。
openssl rsa -in (秘密鍵のファイル名) -outform pem >(秘密鍵のファイル名).pem
RSA形式ファイルをもとに、「秘密鍵のファイル名+.pem」というPEM形式のファイルを作成します。元の鍵はなくならないので安心してください。
もし、預かった秘密鍵のファイル名が「id_rsa」なら、コマンドは以下の通りとなります。
openssl rsa -in id_rsa -outform pem >id_rsa.pem
「秘密鍵のパスフレーズ(パスワード)」を聞かれるので入力してください。パスフレーズなしなら、何も入力せずエンターキーを押せばよいです。
生成されたPEM形式のファイルは、パーミッションが「644」となっています。オーナー以外が扱えないよう、以下のコマンドで「600」に変更しておきましょう。
chmod 600 id_rsa.pem
Finderでディレクトリを確認すると、PEM形式のファイルが増えているはずです。このファイルを、Transmitに登録してください。
補足
Filezillaを利用している場合
いっぽう、同様に著名なFTPクライアントである「Filezilla」は、秘密鍵を「PPK形式」に変換する必要があります。こちらはコマンドは必要なく、「設定」メニューで秘密鍵を登録する際に、アプリケーション側で変換を行ってくれます。
ただし、Filezillaは非公開ディレクトリをブラウズできないので、「.ssh」ディレクトリに秘密鍵を入れていると登録できません。安全性は落ちますが、この場合は「書類」内にディレクトリを作っても問題はありません。