WEBサイトを作るプログラマーは、WEBサーバーにファイルをアップロードをしなければいけません。
そのときに見かける FTP、SFTP、SCPって何が違うのでしょう?
これら全てについてるPはプロトコルの略で、通信手段のことです。
よく見かけるHTTPのPも同じです。
そして、FTP、SFTP、SCPは全部サーバーにプログラムコードや画像をアップロードするときに使うファイル転送用の通信手段のことです。
ではその違いは何なのでしょうか。
ファイル転送のための通信手段(プロトコル)の違い
FTP
FTPはFile Transfer Protocol(ファイル・トランスファ・プロトコル)の略です。
トランスファとは転送という意味で、自分のパソコンからサーバーへファイルを転送する通信手段(=プロトコル)ということになります。
HPを作るとき、一般的には自分のパソコンの中でHTMLやCSSなどのプログラムを作成します。
サーバーでいきなり作り始めると、作ってる最中にアクセスされた場合にがたがたのHPを見せることになります。
また、半端なプログラムをサーバーに乗せることでセキュリティ的にも危険になります。
それらを考慮してローカル環境(自分のパソコン)で作成したプログラムファイルを、サーバーにアップロードするための手段がFTPで、それを行うためにはFFFTPやWinSCPといったアプリケーションを使うのが一般的です。
SFTP
SFTPはSSH File Transfer Protocol(エスエスエイチ・ファイル・トランスファ・プロトコル)の略です。
ファイルを転送するということはFTPと同じですが、SFTPはSSHという暗号化技術を使い、安全にファイルを転送するための仕組みです。
SSHはSecure Shellの略で、暗号化に加え認証機能もあり安全に通信できます。
通常のFTPを使うと、ローカルからサーバーに通信中に横からファイルデータを盗まれる可能性があります。
昔トランシーバーで電話を盗聴するようなことがありましたが、暗号化していないと会話の内容が筒抜けになってしまいます。
暗号化していれば盗聴されても複合化するための鍵が無ければ筒抜けにはなりません。
WEBサイトのプログラムはセキュリティ情報がかなり多いためサーバー転送には暗号化された通信手段を使いましょう。
僕の過去の経験ではこちらの通信を使うことが一般的です。
SCP
SFTPと同様にSSHによる暗号化通信を行う通信手段です。
通信がSFTPより早いと言われていますが、もし通信が途切れた場合には再開は出来ません。SFTPは再開が可能です。
僕は過去にこの手段でサーバーにファイルをアップしてくれとお客さんに言われたことはありません。
僕が携わった案件がたまたまそうだっただけかもしれないので、そういうものがあることだけでも知っていたほうがいいですね。
SCPを使ってと言われたことは1回だけありました。
どれがいい?通信手段まとめ
SFTPかSCPどちらか使えれば安全にファイルの転送が出来ると思います。
お客様のHPをアップロードする場合や、個人情報などのセキュアな情報を含む場合には暗号化通信が必須です。
※あくまで自分でHPを作成する初心者向けの情報です。企業で行う場合は企業の方針に則って採用してください。
おすすめのツール WinSCP
WinSCPは、上で紹介した通信手段を行うためのクライアントツールです。(クライアントってのは自分のパソコンのことです)
FFFTPのサポートが終了した今、一番使えるツールだと思います。
残念ながらWindows版しかありませんが、MacはFirefoxのFTPプラグインFireFTPが同様の機能を持っています。
まとめ
アップロードした画像が盗聴されてもどうせ公開するだけだし問題ないですが、WordPressなどのCMSを使う場合はデータベースの接続情報などが含まれます。
プロとして働くのならばセキュリティはかなり意識しましょう。
どんな場合であってもSFTPを使って暗号化して通信しましょう。
最近ではサーバーの管理画面からアップロードできる機能もあるようです。
アップロードするファイルの数が少ないのであればそれでも充分です。
コメントを残す