رفتن به محتوای اصلی
iServer24 | ارائه‌کننده سرورهای ابری و اختصاصی
آموزش استفاده از SSHFS برای مانت کردن فایل‌سیستم ریموت روی SSH

آموزش استفاده از SSHFS برای مانت کردن فایل‌سیستم ریموت روی SSH

SSHFS ابزاری امن و ساده برای مانت کردن فایل‌سیستم ریموت با SSH است که بدون کپی کردن دیتا، دسترسی بلادرنگ به دایرکتوری‌های بزرگ را ممکن می‌کند. این روش چندسکویی است، از لینوکس، مک و ویندوز پشتیبانی می‌کند و با گزینه‌هایی مثل کش، فشرده‌سازی و reconnect برای پروژه‌های AI/ML بهینه شده است. با SSHFS می‌توان دیتاست‌های حجیم را مستقیم در پروژه‌های یادگیری ماشین استفاده کرد و مدیریت فایل ریموت را بدون دردسر انجام داد.

مقدمه

انتقال فایل از طریق SSH با ابزارهایی مثل SCP و SFTP روش رایجی برای جابه‌جایی فایل‌های کوچک بین سرورهاست. اما وقتی پای دایرکتوری‌های بزرگ یا کل فایل‌سیستم وسط باشد، این روش‌ها دیگر جواب نمی‌دهند. راهکارهایی مثل NFS یا SMB وجود دارند، اما معمولا نیاز به تنظیمات اضافی دارند و از نظر امنیت و نگهداری دردسرساز می‌شوند.

SSHFS بر پایه پروتکل SSH کار می‌کند؛ برای آشنایی بیشتر می‌توانید آموزش اتصال به سرور ریموت با SSH را مطالعه کنید.

اینجاست که SSHFS وارد می‌شود. SSHFS به شما اجازه می‌دهد یک دایرکتوری ریموت را فقط با SSH مانت کنید، بدون نیاز به تنظیمات سمت سرور. مجوزها مستقیما از کاربر SSH به ارث می‌رسند و همه‌چیز رمزنگاری‌شده باقی می‌ماند.

در دنیای امروز، مخصوصا در پروژه‌های هوش مصنوعی، یادگیری ماشین و دیتا ساینس، SSHFS به ابزاری حیاتی تبدیل شده؛ چون امکان دسترسی مستقیم به دیتاست‌های بزرگ روی سرورهای GPU یا دیتا سرورها را بدون کپی محلی فراهم می‌کند.

در این آموزش جامع از دیدگاه، از نصب SSHFS شروع می‌کنیم و تا تنظیمات پیشرفته، بهینه‌سازی عملکرد، مانت دائمی و استفاده در پروژه‌های AI/ML جلو می‌رویم.


نکات کلیدی

  • امنیت بالا: استفاده از رمزنگاری SSH بدون تنظیمات اضافه

  • چندسکویی: لینوکس، مک و ویندوز (با FUSE)

  • مناسب AI/ML: دسترسی مستقیم به دیتاست‌های حجیم

  • بهینه‌سازی عملکرد: کش، فشرده‌سازی و reconnect

  • آماده محیط تولید: پشتیبانی از systemd و مانت دائمی


پیش‌نیازها

  • دسترسی SSH بین دو سیستم

  • دسترسی نصب نرم‌افزار و مانت فایل‌سیستم

  • اتصال شبکه پایدار

  • احراز هویت با کلید SSH (پیشنهادی برای محیط تولید)

  • فعال بودن FUSE روی سیستم

برای اتصال بدون نیاز به وارد کردن مکرر رمز عبور، بهتر است ابتدا SSH Key را در سرور خود راه‌اندازی کنید.


مرحله ۱: نصب SSHFS

اوبونتو / دبیان

2 خط
sudo apt update
sudo apt install sshfs fuse3
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

RHEL / CentOS / Fedora

sudo dnf install sshfs fuse-sshfs
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

Arch Linux

sudo pacman -S sshfs
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

macOS

2 خط
brew install --cask macfuse
brew install gromgull/fuse/sshfs-mac
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

ویندوز

  • نصب WinFsp

  • نصب SSHFS-Win

بررسی نصب

sshfs --version
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

مرحله ۲: مانت کردن فایل‌سیستم ریموت

ساخت مسیر مانت

sudo mkdir /mnt/remote_data
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

مانت ساده

sudo sshfs user@server:/path /mnt/remote_data
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

مانت بهینه برای AI / ML

2 خط
sudo sshfs -o compression=yes,cache=yes,auto_cache,reconnect \
user@gpu_server:/datasets /mnt/ml_datasets
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

گزینه‌های مهم

  • compression=yes کاهش مصرف پهنای باند

  • cache=yes افزایش سرعت دسترسی

  • reconnect اتصال مجدد خودکار

  • ServerAliveInterval جلوگیری از قطع اتصال


مرحله ۳: مانت دائمی (Permanent Mount)

روش کلاسیک با fstab

فایل /etc/fstab را ویرایش کنید:

user@server:/data /mnt/data fuse.sshfs noauto,x-systemd.automount,_netdev,reconnect,identityfile=/home/user/.ssh/id_rsa,allow_other,default_permissions 0 0
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

روش مدرن با systemd (پیشنهادی)

ساخت فایل:

/etc/systemd/system/mnt-data.mount
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

و فعال‌سازی:

2 خط
sudo systemctl enable mnt-data.automount
sudo systemctl start mnt-data.automount
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

بررسی و رفع خطا

  • تست اتصال SSH:

ssh user@server
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید
  • بررسی مانت:

mount | grep sshfs
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید
  • لاگ systemd:

journalctl -u mnt-data.mount
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

بهینه‌سازی عملکرد برای پروژه‌های AI/ML

کش تهاجمی برای دیتاست‌های بزرگ

2 خط
sshfs -o cache=yes,auto_cache,entry_timeout=7200,attr_timeout=7200 \
user@server:/datasets /mnt/datasets
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

بهینه برای اینترنت ضعیف

2 خط
sshfs -o compression=yes,compression_level=9 \
user@server:/data /mnt/data
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

استفاده در پروژه‌های یادگیری ماشین

مثال TensorFlow

5 خط
dataset = tf.keras.preprocessing.image_dataset_from_directory(
    '/mnt/imagenet/train',
    image_size=(224, 224),
    batch_size=32
)
برای کپی کردن کد، روی دکمه کپی در بالا کلیک کنید

بدون کپی دیتا، بدون دردسر. مدل خوشحال، شما هم.


سوالات متداول

SSHFS چه مزیتی نسبت به SCP دارد؟

دسترسی بلادرنگ، بدون دانلود/آپلود مداوم، مناسب دیتاست‌های حجیم.

روی مک و ویندوز هم جواب می‌دهد؟

بله، ولی لینوکس همچنان بهترین عملکرد را دارد.

اگر unmount نکنم چه می‌شود؟

ریسک خراب شدن داده، هنگ سیستم، و قطع ناقص ارتباط. همیشه unmount کن.


جمع‌بندی

SSHFS ابزاری ساده اما قدرتمند برای دسترسی امن به فایل‌سیستم‌های ریموت است. چه توسعه‌دهنده باشید، چه مدیر سرور، چه مشغول آموزش مدل‌های سنگین AI، SSHFS می‌تواند سرعت کارتان را بالا ببرد و دردسر انتقال فایل را حذف کند.

در دیدگاه همیشه توصیه ما این است:
ابزار ساده‌ای که درست تنظیم شده، از پیچیده‌ترین راهکارها هم بهتر کار می‌کند.

اگر خواستی نسخه سئوشده، کوتاه‌تر یا مخصوص وردپرس هم از این متن دربیارم، می‌دونم چطور.

اگر تنها نیاز به انتقال فایل به‌صورت موردی دارید نه مانت دائمی، آموزش استفاده از SFTP نیز می‌تواند گزینه مناسبی باشد.

زیرساخت ابری برای اجرای همین آموزش

سرور ابری ساعتی را برای Docker، Ubuntu و DevOps راه‌اندازی کنید — پرداخت به میزان مصرف یا ماهانه.

ادامه یادگیری:Docker·Ubuntu·VPS