ブログに戻る
5月 23, 2026ガイド

SFTPで安全なファイル転送を設定する方法

OpenSSHでSFTPアップロード:ユーザー作成、chroot、FileZillaやWinSCPでの接続。

SFTPで安全なファイル転送を設定する方法

SFTP(SSH File Transfer Protocol)は別のFTPデーモンなしで暗号化されたファイル転送を提供します。Linux VPSではOpenSSHに組み込まれています。Hiddenceサーバーでの安全な設定手順です。

専用ユーザーでのSFTP

ファイルアップロード専用のユーザーを作成します:

bash
sudo adduser sftpuser
sudo passwd sftpuser

# Test SFTP from client:
sftp sftpuser@YOUR_VPS_IP

# Or use FileZilla: Protocol SFTP, port 22

chroot(推奨)

セキュリティのためユーザーを単一ディレクトリに制限します:

bash
sudo mkdir -p /var/sftp/sftpuser/upload
sudo chown root:root /var/sftp/sftpuser
sudo chmod 755 /var/sftp/sftpuser
sudo chown sftpuser:sftpuser /var/sftp/sftpuser/upload

sudo nano /etc/ssh/sshd_config

# Add at end:
Match User sftpuser
    ChrootDirectory /var/sftp/sftpuser
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

sudo systemctl restart sshd

デスクトップから接続

主要クライアントは標準でSFTPに対応しています:

  • FileZilla — Host: sftp://YOUR_VPS_IP, Port: 22, Logon Type: Normal
  • WinSCP — Protocol: SFTP
  • macOS Finder — Connect to Server: sftp://user@IP
  • Linux: sftp user@IP or scp file user@IP:/path/
  • VS Code — Remote SSH extension for direct editing

セキュリティチェックリスト

  • 可能ならSFTPユーザーにパスワードではなくSSHキーを使用
  • rootのSFTPアクセスを第三者と共有しない
  • sshd_configでrootのパスワード認証を無効化
  • アップロード専用アカウントにはchrootを使用
  • SSHポートでFail2banと併用
  • 可能ならファイアウォールで22番を信頼できるIPのみ許可

ヒント

  • SFTPはFTPではない — レガシーFTPが不要なら21番は開けない
  • WordPressではSSHキー+sftpまたはデプロイツールを推奨
  • 大規模移行はSSH経由のrsyncの方が速い
  • アップロード失敗時は権限を確認(ディレクトリ755、ファイル644)
  • sshd_config変更後は、閉じる前に別セッションでSSHを必ずテスト