FTP接続は失敗することがあります。初回設定時に失敗することもあれば、数ヶ月正常に動作した後に突然失敗することもあります。そして、なかなか原因がわかりにくいエラーメッセージが表示されることもあります。このガイドでは、MacでよくあるFTPおよびSFTP接続エラーと、それぞれの解決方法を説明します。
接続タイムアウト
接続しようとしても何も起きず、30〜60秒後にタイムアウトエラーが表示されます。
よくある原因:
- ファイアウォールが接続をブロックしている(Macのファイアウォール、ルーター、またはサーバー側のファイアウォール)。
- パッシブモードが必要なのにアクティブFTPモードを使用している。アクティブモードではサーバーがMacに接続し直す必要があるため、NATルーターやファイアウォールでブロックされることが多い。
- サーバーのホスト名またはIPアドレスが間違っている。
- サーバーのFTPサービスが起動していない。
解決方法:
- パッシブFTPモードに切り替える。現代のほぼすべての接続で正しい設定です。
- MacのファイアウォールをSystem Settings(システム設定)→ Network(ネットワーク)→ Firewallで確認し、FTPアプリの通信が許可されているか確認する。
- Terminalでpingを使ってホスト名を確認する:
ping ftp.example.com - 別のアプリ(Terminalの
sftpコマンドなど)で接続を試み、アプリ固有の問題かどうかを切り分ける。
接続拒否
待ち時間なしに即座に接続が拒否されます。
よくある原因:
- ポート番号が間違っている。FTPはポート21、SFTPはポート22、Implicit FTPSはポート990を使用します。
- サーバー上でFTP/SFTPサービスが起動していない。
- サーバーのファイアウォールが接続元のIPを明示的にブロックしている。
解決方法:
- ポート番号を再確認する。これが最もよくある原因です。
- サーバープロバイダーにFTP/SFTPが有効になっているか確認する。
- IPアドレスのホワイトリスト登録が必要かどうか確認する。
530 ログインエラー
接続には成功するがログインが拒否されます。
よくある原因:
- ユーザー名またはパスワードが間違っている。コピー&ペーストで目に見えないスペースや改行が入ることがある。
- アカウントは存在するがFTPアクセスが有効になっていない(一部のホスティングパネルではFTPを個別に有効化する必要がある)。
- 大文字・小文字の区別。一部のサーバーではユーザー名が大文字・小文字を区別する。
解決方法:
- ペーストせずに認証情報を手動で入力する。
- ホスティングのコントロールパネルにログインしてFTPアカウントが有効になっているか確認する。
- Terminalで接続してサーバーの応答を確認する:
ftp ftp.example.com
425 データ接続を開けない
ログインには成功するがファイル一覧の取得や転送が425エラーで失敗します。
よくある原因:
- アクティブ/パッシブモードの不一致。サーバーがデータチャンネルを確立できない。
- FTPS接続の場合:コントロール接続とデータ接続間でTLSセッション再利用の失敗。
解決方法:
- パッシブモードに切り替える。
- FTPSの場合、ポート990のImplicitモードではなくポート21のExplicitモードを試す(またはその逆)。
- 一部のサーバーは特定のTLSバージョンを要求します。クライアント設定でTLS 1.2のみに制限を試みる。
SSL/TLSハンドシェイクの失敗
FTPS接続に固有の問題です。暗号化のネゴシエーションが失敗します。
よくある原因:
- サーバーのSSL証明書が期限切れになっている。
- FTPSを期待するポートに通常のFTPで接続している、またはその逆。
- TLSバージョンの不一致。サーバーがTLS 1.2を要求しているのにクライアントがTLS 1.0で接続しようとしている。
- クライアントが信頼していない自己署名証明書を使用している。
解決方法:
- 接続設定でFTPS(通常のFTPではなく)を選択しているか確認する。
- ExplicitとImplicit両方のFTPSモードを試す。
- サーバーが自己署名証明書を使用している場合、クライアントにそれを受け入れるオプションがあるか確認する。
- サーバー管理者に証明書が有効で、TLSバージョンが正しく設定されているか確認する。
ホストキー検証の失敗(SFTP)
SFTPに固有の問題です。サーバーのSSHキーが期待値と一致しないため、Macが接続を拒否します。
よくある原因:
- サーバーが再インストールされたか、SSHキーが再生成された。
- 初めて接続するときに厳格なホストチェックが有効になっている。
- 中間者攻撃の可能性(まれですが、この警告の目的はそれです)。
解決方法:
- サーバーが再インストールされたことがわかっている場合、古いキーを削除する:
ssh-keygen -R hostname - 再接続してプロンプトが表示されたら新しいキーを受け入れる。
- キーの変更を予期していなかった場合は、受け入れる前にサーバー管理者に確認する。
アクセス拒否
接続・ログインには成功するが、ファイルの読み取り・書き込みや特定のディレクトリへのアクセスができません。
よくある原因:
- FTPユーザーが対象ディレクトリへの読み取り・書き込み権限を持っていない。
- サーバー上のディレクトリの所有者がFTPユーザーと一致していない。
- Chroot/jail制限によりホームディレクトリの外へのナビゲーションが禁止されている。
解決方法:
- サーバー管理者にアカウントの権限を確認する。
- FTPクライアントのリモートパスが正しく、そのユーザーでアクセス可能か確認する。
- 管理権限があるサーバーの場合、ディレクトリ権限を確認する:
ls -la /path/to/directory
Mac固有の問題
macOS特有のいくつかの点:
- macOSはHigh Sierra(10.13)以降、内蔵FTPサーバーを廃止しました。 MacでFTPサーバーが必要な場合はサードパーティのソフトウェアが必要です。
- macOSのアップデートによってSFTPが壊れることがあります。 特にMontereyなどのメジャーアップグレードでCyberduckやTransmitなどのアプリのSFTP接続が壊れたという報告があります。Macを再起動するかSSH設定をリセットすると通常は解決します。
- Gatekeeperの警告により、新しくダウンロードしたFTPアプリが開けないことがあります。アプリを右クリックして「開く」を選択するか、System Settings(システム設定)→ Privacy & Security(プライバシーとセキュリティ)で許可してください。