امروزه گستردگی اشتراک اطلاعات بین سیستمهای کامپیوتری و همچنین دسترسی برنامهها به دایرکتوریهای مشترک، برای انتقال اطلاعات در سیستمهای جدا از هم که از طریق شبکه متصل هستند، ما را ملزم به استفاده از ابزارهایی میکند تا بتوان به راحتی به دایرکتوری در یک سیستم از راه دور، دسترسی داشت.
در این سری از آموزشها، ابزار sshfs که دایرکتوری را در یک سیستم از راه دور به اشتراک میگذارد، معرفی میکنیم.
این ابزار برای انتقال اطلاعات از پروتکل SSH File Transfer Protocol یا به اختصار SFTP و شماره پورت پیشفرض 22 استفاده و اطلاعات را در هنگام ارسال encrypt و هنگام دریافت decrypt میکند که از لحاظ امنیتی بسیار مهم و مفید است. همچنین معماری این ابزار مفید به صورت کلاینت-سروری میباشد، در واقع یک سیستم به صورت سرور (مبدا) که راه دور هست و یک سیستم به صورت کلاینت (مقصد) در نظر گرفته خواهد شد.
این ابزار برای مونت کردن از پکیج fuse استفاده میکند؛ این پکیج در سیستمهای یونیکس و شبه یونیکسی، به کاربران معمولی اجازه تغییرات در فایلسیستم را میدهد.
ابتدا باید روی سیستم کلاینت پکیج sshfs را نصب و بعد از آن کامند زیر را اجرا کرد:
مثال:
sshfs usertest@192.168.1.1:/Avid/test /test1
با اجرای دستور بالا در شِل، با رفتن به دایرکتوری test1 میتوان محتوای دایرکتوری /Avid/test را بر روی سیستم 192.168.1.1 مشاهده کرد.
طبق شکل زیر، قصد داریم یک فولدر را از سرور برای کلاینت به اشتراک بگذاریم.
در سیستم لوکال که نقش کلاینت را ایفا میکند نیاز است که به صورت زیر پکیج sshfs نصب شود:
apt-get update && apt-get upgrade
sudo apt-get install sshfs
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 برقرار نمیشود، برای حل این مسئله میتوان از فایل etc/fstab/ کمک گرفت. فقط کافی است که دستور زیر را به انتهای فایل fstab وارد کرد که با هر بار خاموش و روشن شدن سیستم، عملیات مونت شدن sshfs به طور اتوماتیک انجام شود.
سمت اول، دیوایس یا قسمتی که باید مونت شود مشخص میشود، در قسمت دوم نوع فایل سیستم را مشخص و در قسمت سوم، آپشنهای مورد نیاز را مینویسیم؛ در قسمت 4 مشخص میکند که آیا نیاز هست از فایل سیستم توسط سرویس dump بکاپ گرفته شود یا خیر و همچنین در قسمت پنجم، با مقادیر 0 و 1 میتوان مشخص کرد که چک شود برای این فایل سیستم مشکلی پیش آمده یا خیر که این عمل توسط سرویس fsck انجام میشود.
همانطور که ملاحظه کردید بعد از اجرای کامند sshfs، نیاز است تا پسورد توسط کاربر وارد شود، به دو طریق میتوان عملیات وارد کردنِ پسورد را اتوماتیک کرد:
کافی است که کلید عمومی یا public key مربوط به ssh را در مبدا با دستور زیر کپی کنیم:
قسمت اول دستور کپی، قسمت دوم، جایی که فایل کلید عمومی قرار دارد و قسمت سوم، آدرس مقصد را مشخص میکنیم.
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 استفاده شود.
سامانه مجازیسازی PVM از استوریج SSHFS پشتیبانی میکند.
با استفاده از این قابلیت میتوان دسترسی دیسکهای ماشینهای مجازی و یا فرآیند Backup را از طریق SSHFS مدیریت کرد.
منبع: پایگاه دانش شرکت رایانش ابری آوید