Windowsから安全にファイル交換

とある部署から会社の外と中とで、安全な経路をつかってファイル交換をしたいとの要望。大昔は外部サーバをつかってftpでファイルをやり取りしていたらしい。なんとなく契約が切れてからはメールでやり取りしてたんだけど、なんだか面倒になってきたらしい。

(もちろん無料で)実現するにもいろいろと方法はあるけれども、SFTPでの環境を作ってみることにした。サーバ側はsshdが動作していればいいので、環境構築については省略。クライアント側の環境はこんな感じで作ってみました。

必要なもの

つかうものは以下の3つ。

これはSFTPをしゃべるFTPクライアントです。今回はWinのものを使います。

  • puttygen

FileZillaSSHputtyのものを使っているので、puttygenで鍵ペアを作成します。

上記のputtygenで作成した鍵ペアのうち秘密鍵を読み込んで、認証を代行してくれるエージェント。常駐させて使います。FileZillaがSFTPのセッションを張るときにこいつに認証を代行させるみたい。

FileZillaのインストール

まずFileZillaをインストール。ダウンロードサイトからものをダウンロードして、exeをダブルクリック。ライセンスの認証画面がでるので"I Agree"をクリック。

だれが使うかのオプション選択。このあたりはお好みで。


インストール物件の選択。貧乏性なので、全部インストールを選択。

インストール先ディレクトリを指定。なにか理由があれば、好きなところを指定。だいたいの場合はデフォルトでOK。

スタートメニューに登録するメニュー名を選択。これもデフォルトでいいでしょう。

がーっとインストールがすすんで、

無事終了。


puttygenで鍵ペアを作成する

つぎにputtyを使って鍵ペアを作成します。鍵ペアを作成するにはputtyのツールの一つであるputtygenを作成します。ここからダウンロードできます。puttygenをダウンロードしたらおもむろにダブルクリック。


下の方に"Parameters"を選択するところがあります。生成する鍵の種類を選択するんですが、これはこれからつなごうとするサーバがどの種類の鍵に対応しているかに依存します。わからない場合は、接続先のサーバ管理者にどの種類でどれくらいの長さの鍵をつくればいいか訪ねてください。
今回はRSAで、1024bit長の鍵、つまりデフォルトの鍵を作成します。"Generate"をクリックします。画面がすこし切り替わるので、ウィンドウの上でマウスをぐりぐりと動かします。ランダム種の代わりですね。

ある程度ぐりぐりと動かすと画面が切り替わって、パスワードを入力する画面になります。適当にパスワードを入力します。

次に秘密鍵と公開鍵をファイルに書き出します。"Save public key"と"Save private key"をクリックして、適当に名前をつけて保存します。


保存したもののうち、公開鍵、上記に例でいうとpublicの方を接続する先のサーバ管理者へ送付します。これで鍵生成は終了。公開鍵はパスワードを入力する画面の上の方にも表示されています。これをコピペして送っても可。

pageantを動かす。

次にpageantを起動して、秘密鍵をよみこませます。pageantputtygenと同じところからダウンロードできます。ダウンロードしたら起動。起動するとタスクバーにアイコンがでます。


タスクバーのアイコンをダブルクリック。こんな画面がでます。

さっき作成した秘密鍵を読み込みます。"Add"をクリックしてさっき保存したprivate.pkkを選択。パスワードを聞いてくるので、秘密鍵を作成したときのパスワードを入力します。

正確なパスワードをタイプしたあとの画面はこんなの。確認したらCloseをクリック。

FileZillaを動かす

あとはFileZillaを起動。

「ホスト」に接続先、ユーザ名、ポートは22番で接続。パスワードはpageantが代行してくれるので入力する必要はありません。ここでのユーザ名と接続先サーバで公開鍵を仕込んだアカウントはちゃんと対応させること。これで公開鍵方式で経路を安全にしてファイル交換をする仕組みができました。