でもやっぱりFFFTP


FTPツールは何を使っていますか?

FTP(File Transfer Protocol)はネットワーク上でファイル等の転送を行う通信プロトコルです。
特にFTP用のソフトを導入しなくても、FTPはコマンドでも使用できます。

でも黒い画面でファイル名打って・・・よりもGUIツールの方がわかりやすいし使いやすい!

長年愛用してきたFFFTPですが、
開発者としてはブランクのある私が、
以前そのままに古参のソフトを使い続けてもよいものだろうか?
と思いFTPまわりの環境を勉強することにしました。

2017年にはこんなニュースもありました。

FTPクライアント「FFFTP」ついに開発終了か 6年前に“引き継いだ”開発者が表明 - ITmedia NEWS
http://www.itmedia.co.jp/news/articles/1710/26/news112.html

終了は残念ですが、
90年代から今もなお、開発が引き継がれていたことに驚きます。

と、この投稿を3月末くらいから書き始めたのですが、
大ニュースが飛び込んできました!!

更新が途絶えていた「FFFTP」の開発に後継者、v3.0が“GitHub”で公開される(Impress Watch)
https://forest.watch.impress.co.jp/docs/news/1115458.html

やっぱりFFFTP使っていこう!
という気持ちでいっぱいになりました!

気をとりなおして、

暗号化されていないFTPは過去のもの

FTPはセキュリティ上問題があるといわれています。
これは、転送時に暗号化されないためで、
SFTP(SSH File Transfer Protoco)やSCP、SSH
といった暗号化されたファイル転送プロトコルが用いられることが多くなっています。
おなじみのHTTPもファイル転送プロトコルで、暗号化されたものがHTTPSとなります。
ファイルが暗号化されるされないよりも、接続情報が暗号化されないことが重大です。

サーバー側ではポートごとに受信していますが、
サーバー、プランによって提供しているかどうか、分かれるところです。

大手レンタルサーバーを調べてみると、

さくらのレンタルサーバー
 FTPS/スタンダード以上でSFTPも可
XServer
 FTPS/SSHも可
ロリポップ
 FTPS/スタンダードプラン以上ではSSH、SFTPも可

といった具合です。
概ねFTPSに対応。プランによってSFTPあるいはSSHでの接続を認めているという感じです。

それぞれのファイル転送プロトコルによる違いはどんなものなんでしょう

その前におさらい
ネットワークの勉強といえばこれ

OSI参照モデル(wiki)
https://ja.wikipedia.org/wiki/OSI%E5%8F%82%E7%85%A7%E3%83%A2%E3%83%87%E3%83%AB

SFTP(SSH File Transfer Protocol)

SFTPとはSSH(SSH File Transfer Protocol)による暗号化・認証を行ったプロトコルです。
SSHは主にunix系OSにネットワークを介してログインするためのプロトコルで、
SSHが使える環境であれば、SFTPも利用可能です。
OSI参照モデルでいうアプリケーション層で公開鍵認証を行い、
SSH上でsftpというコマンドを発行してファイル転送を支持します。

unix系ログインといえばtelnetやrshがありましたが、こちらもパケットの暗号化をしていないため、
暗号化されたSSHを使う方が安全です。
ポートはSSHで使う22番になります。

FTPS (FTP over SSL/TLS)

FTPSはSSL/TLSというトランスポート層で暗号化された伝送路を形成。
その上で通常のFTPを用いてファイル転送を行います。
暗号化は公開鍵暗号方式です。
FTPSで使用するポート番号は、FTP転送/制御ポートである(989/990)を使用します。
また、FTPSには2つの実行モードが存在し、
- 接続実行後にAUTHコマンドによる暗号化通信を実行する「Explicitモード」(明示モード)
- サーバーに接続後に暗号化通信を実行する「Implicitモード」(暗示)
があります。
「Explicitモード」の場合、クライアントがAUTHコマンドを実施しない限り通常のFTPで実行します。

FTPSのメリットとして、ASCII/BINARY モードのサポートやフォルダ単位での転送があります。

SCP(Secure Copy Protocol)

SSHを使用したファイル転送プロトコルなので、ポートはやっぱり22番です。
SSH上のファイルコピーのためのコマンド、あるいはプロトコルです。
SCPとSFTPの違いは、スピードと、転送の再開ができるかできないかです。
SCPは、データの転送スピードは速いですが、中断した場合、データの転送を再開できません。
SFTPは転送スピードがSCPに比べて遅いですが、データ転送を中断しても、転送を再開できる特徴があります。

ファイル転送クライアントソフト

無料で公開されているファイル転送クライアントソフトを比較してみます。

Winscp

今回比較した3つのプロトコル全ての方式でファイル転送ができるのが特徴。
世界的にスタンダードなオープンソースソフトです。
接続情報を暗号化するマスターパスワード機能も搭載。

FileZilla

FTPS、SFTPをサポートしています。
オープンソースプロジェクトでクライアントソフトだけでなく、
サーバーサイドも開発されています。
mac版linux版もあります。
しかしマスターパスワード機能はありません。

FFFTP

FTPS、しかもExplictでしか接続できません。
マスターパスワード機能はあります。

FFFTPを使う理由

でもやっぱりFFFTPで「FTPS Explictで接続」チェックをいれて、使っています。
理由は

  • FTPSでの接続しかしない
  • だってフォルダ単位で転送できるのが良いからFTPS
  • 使い慣れたFFFTPがいいかなあ
  • SSH接続するならteratarmとか使えば良いよね?

開発後継者も見つかった!!ことですし、
まだまだFFFTPを愛用したいと思います。

参考)
TCPやUDPにおけるポート番号の一覧(wiki)
https://ja.wikipedia.org/wiki/TCP%E3%82%84UDP%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E3%83%9D%E3%83%BC%E3%83%88%E7%95%AA%E5%8F%B7%E3%81%AE%E4%B8%80%E8%A6%A7

SSHなるものをよくわからずに使っている人のための手引書
https://qiita.com/kenju/items/b09199c4b3e7203a2867

IT用語辞典 e-Words
http://e-words.jp/
SFTP / FTPS / SSH / SCP