سرور مجازی :روش استفاده از SSHFS برای مانت فایل سیستمهای راه دور از طریق SSH
مقدمه-انتقال فایل ها از/به سرور مجازی
در حالات زیادی انتقال فایل ها از/به سرور مجازی می تواند دشوار باشد.یک سناریوی کاربری توسعه را تصور کنید که از راه دور برنامه نویسی اپلیکیشن ها را انجام می دهید و خودتان را در وضعیتی می یابید که به صورت مکرر باید اسکریپت ها را به داخل سرور مجازی برای انجام تست آپلود کنید.این می تواند در زمان خیلی اندکی کاملا مایه عذاب شود.خوشبختانه روشی وجود دارد که می توانید فایل سیستم سرور مجازی خود را به کامپیوتر محلی خودتان مانت کنید بنابراین می توانید تغییرات را با لذت و آسانی انجام دهید و با سرورمجازی خود همانند یک کامپیوتر محلی کار کنید.در این مقاله به شما نشان خواهیم داد که دقیقا چگونه اینکار را انجام بدهید.
نصب SSHFS
بر روی اوبونتو/ دبین
SSHFS یک نرم افزار مبتنی بر لینوکس است که باید بر روی کامپیوتر محلی شما نصب شود.در سیستم های مبتنی بر اوبونتو و دبین می تواند با دستور apt-get نصب شود.
sudo apt-get install sshfs
بر روی Mac OSX
شما می توانید SHFS را بر روی Mac OSX نصب کنید.شما نیاز به دانلود FUSEو SSHFSاز سایت osxfuse خواهید داشت.
بر روی Windows
برای نصب SSHFS در ویندوز شما نیاز به گرفتن آخرین بسته win-sshfs از مخزن کد گوگل دارید.لینک دانلود مستقیم را می توانید در زیر بیابید.بعد از اینکه پکیج را دانلود کردید برای راه اندازی نصب دابل کلیک کنید.شما ممکن است وادار به دانلود فایل های اضافی شوید،اگر این چنین است نصب کننده ، .NET Framework 4.0را برای شما دانلود و نصب خواهد کرد.
https://win-sshfs.googlecode.com/files/win-sshfs-0.0.1.5-setup.exe
مانت کردن فایل سیستم راه دور
دستورالعمل های زیر برای اوبونتو/دبین و OSX کار خواهد کرد.دستورالعمل ها برای سیستم های ویندوز در انتهای مقاله خواهد آمد.
برای شروع ما نیاز به ایجاد دایرکتوری محلی داریم که بتوانیم فایل سیستم سرور مجازی را به آن مانت کنیم.
sudo mkdir /mnt/droplet <--replace "droplet" whatever you prefer
حالا می توانیم از SSHFS برای مانت کردن فایل سیستم به صورت لوکال با دستور زیر استفاده کنیم.اگر سرور مجازی شما با پسورد راه اندازی شده است در دستور زیر پسورد روت سرور مجازی در طول این مرحله از شما خواسته خواهد شد.
sudo sshfs -o allow_other,defer_permissions root@xxx.xxx.xxx.xxx:/ /mnt/droplet
اگر سرور مجازی شما بر اساس لاگین با مجوزهای کلیدی SSH پیکربندی شده است شما نیاز خواهید داشت که به SSHFS بگویید که از کلیدهای عمومی شما با دستور زیر استفاده کند.از شما خواسته خواهد شد تا عبارت عبوری را که در طول ایجاد کلیدها با ssh-keygen ایجاد کرده اید را وارد کنید.
sudo sshfs -o allow_other,defer_permissions,IdentityFile=~/.ssh/id_rsa root@xxx.xxx.xxx.xxx:/ /mnt/droplet
اکنون شما می توانید با فایل های سرور مجازی تان همانند اینکه یک وسیله فیزیکی متصل به کامپیوتر محلی شما باشد کار کنید.برای نمونه اگر شما به دایرکتوری /mnt/dropletدر کامپیوتر محلی تان بروید می توانید فایل را به صورت محلی ایجاد کنید و فایل در سرور مجازی شما ظاهر خواهد شد.به همین ترتیب شما می توانید فایل ها را به پوشه /mnt/droplet کپی کنید و آنها در پس زمینه به سرور مجازی شما آپلود خواهند شد.
مهم است که توجه داشته باشید این عملیات فقط یک مانت موفقت را در سرور مجازی شما فراهم می کنند.اگر سرور مجازی یا کامپوتر محلی خاموش یا ریستارت شوند باید عملیات مشابه را برای مانت آن دوباره به کار ببرید.
از مانت خارج کردن فایل سیستم راه دور
اگر شما دیگر به نقطه مانت احتیاج نداشتید می توانید به سادگی با دستور زیر آن را از حالت مانت خارج کنید.
sudo umount /mnt/droplet
نصب و راه اندازی سیستم فایل از راه دور دائمی
SSHFS همچنین اجازه مانت دائمی را به فایل سیستم های راه دور می دهد.در این حالت نقطه مانت شما در صورت ریستارت سرور مجازی و یا کامپیوتر محلی شما نیز ماندگار خواهد بود. برای ست کردن مانت دائمی ،ما نیاز به ویرایش فایل /etc/fstab در کامپیوتر محلی خواهیم داشت تا به صورت اتوماتیک فایل سیستم را هر بار که سیستم بوت می شود مانت کند.
در ابتدا ما نیاز به ویرایش فایل /etc/fstabبا یک ویرایشگر متن داریم.
sudo nano /etc/fstab
به انتهای فایل بروید و این خط را وارد کنید:
sshfs#root@xxx.xxx.xxx.xxx:/ /mnt/droplet
تغییرات را برای /etc/fstab ذخیره کنید و اگر نیاز باشد ریبوت کنید.
باید در نظر گرفته شود که مانت دائمی فایل سیستم سرور مجازی شما در کامپیوتر محلی یک ریسک امنیتی بالقوه است.اگر کامپیوتر محلی شما در معرض خظر باشد اجازه مسیریابی مستقیم را به سرور مجازی شما می دهد.بنابراین توصیه نمی شود که مانت های دائمی را بر روی سرورهای کاربردی انجام دهید.
استفاده از Win-SSHFS برای مانت فایل سیستم راه دور بر روی ویندوز
بعد از راه اندازی برنامه win-sshfs، یک واسط گرافیکی برای انجام عملیات مانت برای شما نمایش داده خواهد شد.
گام اول : بر روی دکمه add در گوشه پایین سمت چپ ویندوز کلیک کنید.
گام دوم: در فیلد نام درایو یک نام را برای فایل اشتراکی وارد کنید.
گام سوم : آی پی سرور مجازی خود را در فیلد HOST وارد کنید.
گام چهارم: پورت SSH خود را وارد کنید.(پورت ۲۲ را وارد کنید مگر اینکه به صورت دستی پورت دیگری داده باشید)
گام پنجم : در فیلد Username نام یوزر خود را وارد کنید.(یوزر root را وارد کنید مگر اینکه به صورت دستی یوزر ایجاد کرده باشید)
گام ششم : پسورد SSH را در فیلد پسورد وارد کنید.(توجه داشته باشید در ویندوز باید سرور مجازی خود را با لاگین پسورد به جای احراز هویت ssh-keyپیکربندی کنید.)
گام هفتم : نقطه مانت دلخواه خود را در فیلد دایرکتوری وارد کنید.( / را برای مانت فایل سیستم از روت وارد کنید.به همین ترتیب می توانید /var/www یا ~/را برای دایرکتوری home وارد کنید.)
گام هشتم : درایوی را انتخای کنید که مایلید ویندوز برای فایل سیستم سرور مجازی شما به کار ببرد.
گام نهم : بر روی دکمه Mount برای اتصال به سرور مجازی و مانت فایل سیستم کلیک کنید.
اکنون فایل سیستم سرور مجازی شما از طریق My Computer به عنوان درایوی که شما در گام هشتم انتخاب کرده بودید در دسترس خواهد بود.
طریقه استفاده از نقطه مانت راه دور
مانت از راه دور مشابه ذخیره سازی مانت محلی عمل می کند: شما قادرید ایجاد کنید، کپی کنید ، انتقال دهید، ویرایش کنید ، فشرده سازی کنید یا هر عملیات سیستم فایل را که که قادرید بر روی سرور مجازیتان به کار ببندید ، انجام دهید. اما شما نمی توانید برنامه ها یا اسکریپت ها را در سرور راه دور راه اندازی کنید.
یک نمونه از کاربردش این خواهد بود که اگر شما یک وب سایت را بر روی سرور مجازی خود میزبانی می کنید و نیاز دارید که تغییراتی را به صورت منظم در وب سایت خود اعمال کنید ، مانت فایل سیستم به صورت محلی به شما اجازه می دهد که هر ویرایشگر کدی را راه اندازی کنید IDE یا ویرایشگر متن که می خواهید در سایت ویرایش کنید.و هر تغییری که انجام می دهید به محض اینکه در کامپیوتر محلی انجام می شود در سرور مجازی نیز انجام خواهد شد.
به طور مشابه،در سرور مجازی های استفاده شده به منظور تست پروژه های برنامه نویسی ،آن برای بیشتر ساده شدن تغییرات کد که می تواند به صورت فوری بدون نیاز به اصلاح کدها به صورت محلی و از راه دور تست شود به کار رود.(و سختی آپلود کپی فایهای جدید را برای تغییرات کوچک کد از بین می برد.)
ترجمه شده توسط : آرزو رنجبرپور