cloudavid
cloudavid
خواندن ۴ دقیقه·۴ سال پیش

آیا می‌دانید SSHFS چیست؟

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

در این سری از آموزش‌ها، ابزار sshfs که دایرکتوری را در یک سیستم از راه دور به اشتراک می‌گذارد، معرفی می‌کنیم.


با ابزار SSHFS آشنا شوید

این ابزار برای انتقال اطلاعات از پروتکل SSH File Transfer Protocol یا به اختصار SFTP و شماره پورت پیش‌فرض 22 استفاده و اطلاعات را در هنگام ارسال encrypt و هنگام دریافت decrypt می‌کند که از لحاظ امنیتی بسیار مهم و مفید است. همچنین معماری این ابزار مفید به صورت کلاینت-سروری می‌باشد، در واقع یک سیستم به صورت سرور (مبدا) که راه دور هست و یک سیستم به صورت کلاینت (مقصد) در نظر گرفته خواهد شد.

این ابزار برای مونت کردن از پکیج fuse استفاده می‌کند؛ این پکیج در سیستم‌های یونیکس و شبه یونیکسی، به کاربران معمولی اجازه تغییرات در فایل‌سیستم را می‌دهد.


چگونه از SSHFS استفاده کنیم؟

ابتدا باید روی سیستم کلاینت پکیج sshfs را نصب و بعد از آن کامند زیر را اجرا کرد:

  1. این قسمت، دستور sshfs را مشخص می‌کند.
  2. آدرس مبدا را مشخص می‌کند، همچنین برای مشخص کردن دایرکتوری در درون سیستم سرور، بعد از دو نقطه آورده می‌شود.
  3. در این قسمت دایرکتوری مربوط به مقصد را مشخص می‌کنیم.
  4. در این قسمت، آپشن‌های مورد نیاز را مشخص می‌کنیم.


مثال:

sshfs usertest@192.168.1.1:/Avid/test /test1

با اجرای دستور بالا در شِل، با رفتن به دایرکتوری test1 می‌توان محتوای دایرکتوری /Avid/test را بر روی سیستم 192.168.1.1 مشاهده کرد.


سناریو اشتراک فولدر از سرور برای کلاینت چگونه است؟

طبق شکل زیر، قصد داریم یک فولدر را از سرور برای کلاینت به اشتراک بگذاریم.

در سیستم لوکال که نقش کلاینت را ایفا می‌کند نیاز است که به صورت زیر پکیج sshfs نصب شود:

  • سیستم‌های Debian/ubuntu/mint linux

apt-get update && apt-get upgrade

sudo apt-get install sshfs

  • سیستم‌های ردهت و centos

yum install update

sudo yum install sshfs


بعد از نصب کافی است که دستور زیر را اجرا کرده و دایرکتوری /test1 را به /Avid/test مونت کنیم.

sshfs usertest@192.168.1.1:/Avid/test /test1

بعد از اجرای این دستور، پسورد سیستم سرور را وارد کرده و عملیات مونت انجام می‌شود.

نکته 1:

عملیات sshfs با کاربر usertest و پسورد همین کاربر که مربوط به سیستم 192.168.1.1 هست، انجام می‌شود.

نکته 2:

لازم است که کاربر usertest عضو گروه fuse شده باشد که این عمل به طور خودکار انجام می‌شود.

برای اینکه اطمینان از موفق بودن عملیات sshfs حاصل شود، کافی است دستور زیر را وارد کنیم:

df -h

در تصویر بالا مشاهده می‌کنیم که عملیات مونت sshfs با موفقیت انجام شده است.

برای قطع کردن مونت انجام گرفته توسط sshfs، کافی است دستور umount زیر اجرا شود:

umount /test1

چند راهکار خوب و مناسب

  • ناپایدار بودن عملیات مونت sshfs بعد از خاموش شدن سیستم

اگر سیستم خاموش یا ریست شود مونت sshfs برقرار نمی‌شود، برای حل این مسئله می‌توان از فایل etc/fstab/ کمک گرفت. فقط کافی است که دستور زیر را به انتهای فایل fstab وارد کرد که با هر بار خاموش و روشن شدن سیستم، عملیات مونت شدن sshfs به طور اتوماتیک انجام شود.

سمت اول، دیوایس یا قسمتی که باید مونت شود مشخص می‌شود، در قسمت دوم نوع فایل سیستم را مشخص و در قسمت سوم، آپشن‌های مورد نیاز را می‌نویسیم؛ در قسمت 4 مشخص می‌کند که آیا نیاز هست از فایل سیستم توسط سرویس dump بکاپ گرفته شود یا خیر و همچنین در قسمت پنجم، با مقادیر 0 و 1 می‌توان مشخص کرد که چک شود برای این فایل سیستم مشکلی پیش آمده یا خیر که این عمل توسط سرویس fsck انجام می‌شود.

  • احراز هویت اتوماتیک هنگام اجرای دستور sshfs

همان‌طور که ملاحظه کردید بعد از اجرای کامند sshfs، نیاز است تا پسورد توسط کاربر وارد شود، به دو طریق می‌توان عملیات وارد کردنِ پسورد را اتوماتیک کرد:

  1. راه اول این است که از ssh password less استفاده کنیم.

کافی است که کلید عمومی یا public key مربوط به ssh را در مبدا با دستور زیر کپی کنیم:

قسمت اول دستور کپی، قسمت دوم، جایی که فایل کلید عمومی قرار دارد و قسمت سوم، آدرس مقصد را مشخص می‌کنیم.

  1. با استفاده از دستور echo، پسورد را در درون کامند به صورت زیر قرار می‌دهیم:

echo password  | sshfs root@192.168.1.1:/Avid/test /test1 -o password_stdin -o strictHostKeyChecking=no

در قسمت password، پسورد مورد نظر خود را وارد کنید.

همچنین همان‌طور که مشاهده می‌کنید در اینجا از آپشن‌های password_stdin، strictHostKeyChecking استفاده شده که password_stdin اعلام می‌کند که پسورد در کامند قرار گرفته و آپشن strictHostKeyChecking نیز برای این است که وقتی برای بار اول این دستور اجرا می‌شود، hostkey یا fingerprint برای سرور ناشناخته شده است و درخواست می‌کند ادامه داده شود یا خیر، لذا برای چک نکردن hostkey مقدار این آپشن را no قرار می‌دهیم.

نکته:

لازم است قبل از هر آپشنی از پارامتر -o استفاده شود.

مزیت‌های استفاده از SSHFS نسبت به دیگر راهکارها مانند Samba و NFC چیست؟

  • کافی است کاربر تنها دسترسی ssh بر روی سرور داشته باشد.
  • نیاز به تنظیمات در سمت سرور نیست.


رابطه SSHFS و PVM چیست؟

سامانه مجازی‌سازی PVM از استوریج SSHFS پشتیبانی می‌کند.
با استفاده از این قابلیت می‌توان دسترسی دیسک‌های ماشین‌های مجازی و یا فرآیند Backup را از طریق SSHFS مدیریت کرد.


منبع: پایگاه دانش شرکت رایانش ابری آوید

sshfsدایرکتوریانتقال داده
ارائه دهنده زیرساخت امن و پایدار برای تداوم کسب و کارها
شاید از این پست‌ها خوشتان بیاید