فارسی (Farsi)
€EUR

انتقال فایل به VPS لینوکس با FileZilla (SFTP)

3 min
سرور مجازی (VPS/VDS)

SFTP داخل همان اتصال SSH موجود کار می‌کند، پس به نرم‌افزار اضافه روی سرور یا درگاه جدید نیازی نیست. روی VPS Linux Infrawire امن‌ترین راه برای آپلود وب‌سایت یا گرفتن پشتیبان با یک کلاینت گرافیکی مثل FileZilla است. این راهنما ورود با گذرواژه و کلید، مجوزهای فایل و یک کاربر محدود به SFTP را پوشش می‌دهد.

📋 پیش‌نیازها

  • یک VPS لینوکس (Ubuntu 24.04، Debian 12، AlmaLinux 9 یا Rocky 9) با SSH فعال روی درگاه 22.
  • آی‌پی VPS و گذرواژهٔ root از بخش کاربری مشتری.
  • FileZilla Client نصب‌شده روی رایانهٔ شما (Client، نه FileZilla Server).

1. اتصال سریع با گذرواژه

برای اولین آزمایش از نوار اتصال سریع بالای FileZilla استفاده کنید:

  • میزبان: sftp://VPS_IP
  • نام کاربری: USER
  • گذرواژه: گذرواژهٔ شما
  • درگاه: 22

بار اول کلید میزبان را بپذیرید. پنل سمت راست درخت فایل‌های سرور را نشان می‌دهد. به‌جای root از یک کاربر معمولی استفاده کنید: یک کلیک اشتباه آسیب کمتری می‌زند.

Bash
adduser USER usermod -aG sudo USER

روی AlmaLinux یا Rocky از useradd -m USER، passwd USER و usermod -aG wheel USER استفاده کنید.

2. ورود با کلید SSH

کلیدها از گذرواژه امن‌ترند و با حملهٔ brute-force حدس زده نمی‌شوند. روی رایانهٔ خودتان یک جفت کلید بسازید و بخش عمومی را روی سرور کپی کنید.

Bash
ssh-keygen -t ed25519 -C "filezilla" ssh-copy-id USER@VPS_IP

در FileZilla مسیر Edit > Settings > Connection > SFTP > Add key file را باز کنید و کلید خصوصی خود را انتخاب کنید (فایلی که .pub ندارد). ممکن است FileZilla پیشنهاد تبدیل آن به قالب خودش را بدهد؛ بپذیرید. هرگز کلید خصوصی را به اشتراک نگذارید.

3. ذخیرهٔ اتصال در Site Manager

  1. File > Site Manager را باز کنید و روی New site بزنید.
  2. پروتکل: SFTP - SSH File Transfer Protocol.
  3. میزبان: VPS_IP، درگاه: 22.
  4. نوع ورود: برای گذرواژه Normal و برای کلید Key file.
  5. کاربر: USER. در زبانهٔ Advanced پوشهٔ راه دور پیش‌فرض را تعیین کنید، مثلاً /var/www/example.com.
  6. روی Connect بزنید. سایت برای دفعهٔ بعد ذخیره می‌شود.

گذرواژه را روی رایانه‌ای که کنترل ندارید ذخیره نکنید.

4. تنظیم مالک و مجوز فایل‌های وب

فایل‌های آپلودشده اغلب مالک اشتباه دارند و خطای 403 یا 500 می‌دهند. پوشهٔ وب را به کاربر خود بدهید و اجازه دهید وب‌سرور آن را بخواند.

Bash
mkdir -p /var/www/example.com chown -R USER:www-data /var/www/example.com find /var/www/example.com -type d -exec chmod 755 {} \; find /var/www/example.com -type f -exec chmod 644 {} \;

روی AlmaLinux و Rocky گروه وب‌سرور apache است نه www-data. پوشه‌هایی که برنامه باید در آن‌ها بنویسد (آپلود، کش) را می‌توان با گروه مالک برابر گروه وب‌سرور روی 775 گذاشت. هرگز از chmod -R 777 استفاده نکنید. در FileZilla می‌توانید روی فایل راست‌کلیک کنید و File permissions را بزنید.

5. اختیاری: کاربر فقط-SFTP محبوس در یک پوشه

برای دادن دسترسی به فقط یک پوشه بدون شل به مشتری، از chroot استفاده کنید. خود پوشهٔ chroot باید متعلق به root باشد و برای کس دیگری قابل‌نوشتن نباشد، وگرنه sshd ورود را رد می‌کند.

Bash
groupadd sftpusers useradd -M -d /files -s /usr/sbin/nologin -G sftpusers CLIENT passwd CLIENT mkdir -p /var/sftp/CLIENT/files chown root:root /var/sftp/CLIENT chmod 755 /var/sftp/CLIENT chown CLIENT:CLIENT /var/sftp/CLIENT/files

این بلوک را به انتهای /etc/ssh/sshd_config اضافه کنید:

INI
1Match Group sftpusers 2 ChrootDirectory /var/sftp/%u 3 ForceCommand internal-sftp 4 AllowTcpForwarding no 5 X11Forwarding no

پیش از بارگذاری مجدد نحو را بررسی کنید و تا مطمئن نشدید ورود جدید کار می‌کند، نشست SSH فعلی را باز نگه دارید.

Bash
sshd -t systemctl reload ssh

نام سرویس روی Ubuntu و Debian برابر ssh و روی AlmaLinux و Rocky برابر sshd است. کاربر محدود وارد /files می‌شود و چیز دیگری نمی‌بیند.

بررسی

پیش از سرزنش FileZilla از ترمینال آزمایش کنید:

Bash
sftp USER@VPS_IP sftp> pwd sftp> put test.txt sftp> ls -l

سپس با FileZilla فایلی آپلود کنید و مالک آن را با ls -l /var/www/example.com بررسی کنید.

عیب‌یابی

  • اتصال رد شد یا زمان تمام شد: بررسی کنید sshd در حال اجراست (systemctl status ssh)، درگاه در فایروال باز است و SFTP را انتخاب کرده‌اید نه FTP.
  • Permission denied (publickey): کلید در ~/.ssh/authorized_keys نیست یا مجوزها غلط است. با chmod 700 ~/.ssh و chmod 600 ~/.ssh/authorized_keys اصلاح کنید.
  • کاربر chroot بلافاصله پس از ورود قطع می‌شود: پوشهٔ chroot مال root نیست یا برای گروه قابل‌نوشتن است. در journalctl -u ssh دنبال "bad ownership or modes for chroot directory" بگردید.
  • آپلود نمی‌شود و مجوز پوشه رد می‌شود: کاربر مالک مقصد نیست. دستورهای chown و chmod گام 4 را دوباره اجرا کنید.

✅ اکنون می‌توانید با FileZilla فایل‌ها را با امنیت به VPS لینوکس خود منتقل کنید.

با آخرین پیشنهادها، تخفیف‌ها و تبلیغات ویژه به‌روز بمانید.

مشاهده تخفیف‌ها

ما از کوکی استفاده می‌کنیم

ما از کوکی‌های تحلیلی برای بهبود تجربه شما در سایت خود استفاده می‌کنیم. هیچ داده‌ای به اشخاص ثالث فروخته نمی‌شود. اطلاعات بیشتر در سیاست حفظ حریم خصوصی ما.