FileZillaでFTP接続失敗を解決、ついでにSFTP接続にしてみた

Programming

FTPツールにはFileZillaを使っている人が多いかと思います。私もその1人です。
今回レンタルサーバーのファイルを弄ろうと久々にFileZillaで接続してみたのですが、なぜか接続ができなくなっていました。
問題の解明から解決方法までを記していきます。

何もディレクトリが表示されない

FileZillaを起動させていつものようにレンタルサーバー(コアサーバー)に接続したところ、なぜかリモートサイトの画面が真っ白に。
どのサーバーにも接続されていませんとの表示があり、謎に接続が失敗しています。

デバッグログをみてみる


編集タブの設定メニューを開き、デバッグ項目から
デバッグメニューを表示する
にチェックを入れるとデバッグログが見れるようになります。

すると以下のような内容が書いてありました。

GnuTLS エラー -110 gnutls_record_recv 内: The TLS connection was non-properly terminated.

よく分かりません。

エラーを解読

言葉の意味がよくわからないので1つ1つ調べていきます。

GnuTLSとは

GnuTLSGNU Transport Layer Security; グヌーティーエルエス)はSSL/TLSDTLSプロトコルフリーなライブラリー実装のひとつである。アプリケーションがネットワーク通信層を越えて安全な通信プロトコルを利用できるようAPIを提供することを目的とする。 引用:Wikipedia

要は安全な通信を行うための便利なネットワークライブラリ?みたいなもののようです。
そこにエラーが出ているということは通信のセキュリティ関係の設定が何かおかしいのか…?

TLSとは

Transport Layer Security(トランスポート・レイヤー・セキュリティ、TLS)は、インターネットなどのコンピュータネットワークにおいてセキュリティを要求される通信を行うためのプロトコルである。
当プロトコルは(特に区別する場合を除いて)SSL (Secure Sockets Layer) と呼ばれることも多い。これは、TLSの元になったプロトコルがSSLであり[1]、そのSSLという名称が広く普及していることによる[2]。  引用:Wikipedia

こちらはプロトコルの話。セキュリティがしっかりした通信を行うためのプロトコルだそうです。SSLの仲間?のようなもの。

このプロトコルを通じたコネクションが正しく終了しなかったというのがエラーの意味。

暗号化設定を変更し解決?

とにかくこれは通信プロトコルのところに原因があるのだろうということで、サイトマネージャーの一般タブから設定を確認してみます。

プロトコルはFTP、暗号化は使用可能なら明示的なFTPoverTLSを使用

今までは気にしてこなかったけど、FTPoverTLSとはなんぞやと思い調べてみたところ、いわゆるFTPSと同じ意味のものらしい。

FTPSとは

FTPS (File Transfer Protocol over SSL/TLS) は、FTPで送受信するデータをTLSまたはSSLで暗号化する通信プロトコル。 引用:Wikipedia

FTPでの通信はセキュリティ的に問題があるから、TLSまたはSSLを使って通信内容を暗号化しよう!というプロトコル、つまりFTPの強化版ってことですね。
さっきTLSのエラーが出てきたのは、このFTPSを使っていたからなんだ!

 

しかしTLSを行うためのGnuTLSがうまくいっていないのだから、このFTPSは使いたくない。
そこで暗号化設定を

平文のFTPのみを使用する(安全でない)
に変えてみたところ、

うまくいきました。
しかしなんの暗号化もなしに接続するというのはあまりにも危険すぎます。

SFTP接続で安全に通信する

そこで、FTPSがうまくいかないのならSFTPで繋いでみました。ややこしい名前ですが、2つは全く別物です。

SFTPとは

SFTPとは、sshで暗号化された通信路を使って安全にファイルを送受信するプロトコル。また、それを利用してUNIXなどで暗号化ファイル送受信を行うコマンド。 引用:IT用語辞典

FTPSがあくまでFTPプロトコルを拡張しTLSあるいはSSLを使えるようにしたものであるのに対し、SFTPはSSHプロトコルの上でファイルデータの送受信を実現するものとなっています。

SFTP通信を実現するやり方は簡単です。
レンタルサーバーはコアサーバー、FTPソフトはFileZillaであることを前提として説明します。

コアサーバーのホスト情報登録をする

コアサーバーの管理ページに入り、ホスト情報登録メニューからSSH登録のボタンを押します。反映には5分程度かかります。

FileZillaのプロトコル設定を変更する


サイトマネージャーの一般タブのプロトコルの設定を、SFTPに変更します。

たったこれだけで安全なファイル送受信が実現できます。

コメント

タイトルとURLをコピーしました