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(プライバシーとセキュリティ)で許可してください。