5月 23, 2026ガイド
SFTPで安全なファイル転送を設定する方法
OpenSSHでSFTPアップロード:ユーザー作成、chroot、FileZillaやWinSCPでの接続。

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 22chroot(推奨)
セキュリティのためユーザーを単一ディレクトリに制限します:
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を必ずテスト