昨日、Sublime TextのSFTPパッケージで、鍵認証(公開鍵暗号方式)を使ったときに、ファイルのUPロードができない記事を書きました。
その後、読者の方からアドバイスをいただいたり、自分で調べているうちに、鍵認証によるファイルのUPロードができるようになりましたので、ご報告いたします。
Windows環境でSFTPパッケージを使うコツ
Windows環境で、Sublime Text2のSFTPパッケージ(Sublime SFTP)を使うためには、コツが3つあります。
~/.ssh/configは作成しない
この記事を書いた2014年8月28日現在、鍵認証によるSublime SFTPのUPロードについて言及する記事は、Mac環境のものに限られています。
すると、以下の内容を記述する~/.ssh/configファイル内を新たに作成することが、書かれている場合があります。
[php]
Host sftp.server
HostName 13×.×××.×××.×××
User myusername
IdentityFile ~/.ssh/id_rsa
[/php]
Mac環境の場合、~/.ssh/configは、クライアントPCに作成するファイルに該当すると考えられます。ですが、Windowsではこのファイルを作る場所がないので、この作業は行いません。
公開鍵と秘密鍵の作成
鍵認証なので、公開鍵と秘密鍵を作成する必要があります。ただし、次のaからdまで、4つの手順を踏む必要があります。
a)TeraTermで公開鍵(id_rsa.pub)と秘密鍵(id_rsa)を作成する
TeraTermによる、公開鍵と秘密鍵の作成方法については、こちらのページが参考になります。
b)公開鍵を~/.sshフォルダに格納する
~/.sshフォルダは、サーバー側で予め作成してください。
c)ファイル名の変更とパーミッションの変更
格納したファイルの名前をauthorized_keysに、パーミッションを600に変更します。これらの作業は、Mac・Windowsともに共通です。お約束ごとですね。
d)秘密鍵の拡張子を変更
TeraTermで作成した秘密鍵(id_rsa)にもとづいて、FileZillaで.ppkを拡張子とする秘密鍵(id_rsa.ppk)に変更します。
TeraTermの秘密鍵に基づいて、FileZilla専用の秘密鍵を作成し、サーバー側には両者共通の公開鍵(authorized_keys)を1つだけ配置するところがポイントです。
なお、id_rsaをid_rsa.ppkに変更する作業は、こちらのページが参考になります。
sftp-config.jsonの設定変更
上記3の作業に基づいて、sftp-config.jsonの設定を変更します。
[php]
"host": "13×.×××.×××.×××",
"user": "myusername",
"password": "mypassword",
// 22番ポートから1024から65535のいずれかに変更
"port": "60000",
…
"remote_path": "/var/www/html/test",
…
// コメントアウトを外し、Cドライブ上に格納している秘密鍵を指定する
"ssh_key_file": "C:/RSA/id_rsa.ppk",
…
// コメントアウトを外し、falseからtrueに変更
"allow_config_upload": true,
[/php]
“ssh_key_file”でサーバー側の公開鍵に対応する、クライアントPC側の秘密鍵の場所を指定します。
Windows環境なので、Cドライブに任意のフォルダ(RSA)を用意して、その直下に秘密鍵(id_rsa.ppk)を格納しています。
まとめ
ひょっとしたら、Windows環境でも他にも、接続する方法があるかもしれません。しかし、自分で試してみた中では、この方法以外にやり方が分かりませんでした。
ただ、やはりMac環境における接続方法に比べ、Windows環境における、SFTPパッケージによる接続はややこしいです。
〔前の記事〕
〔参考サイト〕