انتقال امن فایلها یک نقطه حیاتی در استفاده از VPS است. خوشبختانه، با استفاده از دستور SCP در لینوکس میتوانید این کار را به راحتی انجام دهید. در این مقاله، شما یاد خواهید گرفت که چگونه از دستور SCP در لینوکس استفاده کنید و چگونه میتواند به شما کمک کند.
وب سایت روناک هاست بزرگترین مرجع خرید و فروش انواع سرویس های ابری و میزبانی وب است که از جلمه آن ها می توان به موارد زیر اشاره کرد:
سرور مجازی NVME | یک مدل سرور مجازی که به هارد های NVME پر سعرت مجهز شده است که بتواند سایت ها و اطلاعات را با سرعت بالا بارگذاری کند
سرور مجازی بورس | نوعی سرور مجازی که مخصوص کسانی است که برای بورس ، فارکس و انجام معاملات مالی و جهانی می خواهد سرویسی ایمن و سریع داشته باشند
سرور مجازی ترید | نوعی دیگر از سرور های مجازی است که مخصوص افراد تریدر و کسانی که در بازار های مالی و ارز دیجیتال فعالیت می کنند ساخته شده است
سرور اختصاصی | یکی دیگر از سرویس های روناک هاست که مخصوص افراد حرفه ای و کارهای سنگین برای کسانی که فعالیت های اختصاصی روی سرور می خواهند انجام دهند
هاست وردپرس ارزان | یک هاست محبوب برای سایت های وردپرسی با قیمت مناسب و بالاترین کیفیت و پشتیبانی عالی
هاست ووکامرس | یک هاست وردپسی اما مناسب برای سایت های فروشگاهی و آنلاین شاپ ها با سرعت بالا و قیمت بسیار مناسب
دقیقاً دستورات SCP چیستند؟ بر اساس پروتکل انتقال فایل از راه دور (RCP) توزیع نرمافزار برکلی (BSD)، SCP (کپی امن) یک پروتکل انتقال فایل شبکه است که امکان انتقال فایلها به راحتی و امن بین یک میزبان از راه دور و یک میزبان محلی یا دو سایت از راه دور را فراهم میکند. توسعه دهندگان Full Stack به طور متداول از دستور SCP برای ویژگیهای تأیید هویت و رمزنگاری آن بدون نیاز به سرویسهای میزبانی شخص ثالث مانند Github استفاده میکنند. این روشی ساده برای جلوگیری از افشای دادههای شما به بررسیکنندههای بسته است و در عین حال آنها را محرمانه نگاه میدارد.
SCP در اصل ترکیبی از RCP و SSH پوسته امن است. این وابستگی به RCP برای انجام عملیات کپی و به SSH برای رمزنگاری اطلاعات و تأیید هویت سیستمهای از راه دور اتکا دارد. بر خلاف Rsync ، تنها چیزی که برای استفاده موفق از خط فرمان دستور SCP نیاز دارید، یک نام کاربری و گذرواژه یا عبارت عبور برای سیستمهایی است که در انتقال درگیر هستند. این امر فرایند را سادهتر میکند زیرا شما نیازی به ورود به هر یک از سیستمها ندارید.
مثال های عینی از دستور SCP در لینوکس
در اینجا مثال اصلی دستور SCP لینوکس است:
scp [other options] [source username@IP]:/[folder and filename] [destination username@IP]:/[destination folder]
ممکن است در ابتدا پیچیده به نظر برسد!.در این مثال، ما در حال انتقال بین دو سرور VPS هستیم.
- [other options] اصلاح کننده هایی هستند که می توانید به دستور SCP لینوکس اضافه کنید. بعداً در مورد محبوب ترین ها صحبت خواهیم کرد
- [username source@IP] نام کاربری و آدرس IP دستگاهی است که فایل مورد نظر شما در آن قرار دارد. شبیه root@123.123.123.12 است
- :/ به فرمان SCP اطلاع می دهد که می خواهید پوشه منبع را تایپ کنید
- [folder and filename] جایی است که فایل به همراه نام آن قرار دارد. به عنوان مثال؛ /users/Hostinger/Desktop/SCP.png
- [destination username@IP] نام کاربری و آدرس IP دستگاه مقصد است
- [destination folder] پوشه مقصدی است که فایل در آن ذخیره خواهد شد
در یک عملکرد و سناریوی واقعی، به این صورت خواهد بود:
scp -p root@162.168.1.1:/media/scp.png hostinger@162.168.1.2:/desktop/destination
ببینید، خیلی ساده است! اگر در حال کپی برداری از یک ماشین محلی یا از آن هستید، به آدرس IP، مسیر مقصد، یا مسیر منبع مانند /desktop/folder_name نیازی ندارید.
بیایید در مورد گزینه های دیگری که می توانید برای تغییر دستور SCP لینوکس استفاده کنید صحبت کنیم. 20 گزینه متداول وجود دارد که می توانید از آنها به عنوان یک کاراکتر ( -o ) به همراه معادل توصیفی آنها ( -option ) استفاده کنید.
رایج ترین گزینه ها عبارتند از:
- [-p]اجازه می دهد تا پورت دیگری را برای سرور مشخص کنید (پورت TCP پیش فرض برای دستور 22 است).
- [-c] به شما این امکان را می دهد که الگوریتم رمزگذاری مورد استفاده مشتری را مشخص کنید. برخی از مقادیری که می توانید استفاده کنید عبارتند از ‘aes256-ctr’، ‘aes256-cbc’، ‘blowfish-cbc’، ‘arcfour’، ‘arcfour128’، ‘arcfour256’، ‘cast128-cbc’، aes128-ctr’ ، ‘aes128-cbc’، ‘aes192-ctr’، ‘aes192-cbc’ و 3des-cbc’. گزینه پیش فرض در پیکربندی پوسته “AnyStdCipher” است.
- [-q]عملیات را در حالت بی صدا اجرا می کند، به این معنی که فقط خطاهای بحرانی نمایش داده می شوند.
- [-r]برای کپی بازگشتی است که همه زیر شاخه ها را شامل می شود.
- اگر میخواهید نسخه پروتکل مورد استفاده، IPv4 یا IPv6 را انتخاب کنید -4 یا -6 میتواند استفاده شود.
- [-p]ویژگی های فایل اصلی و زمان های اصلاح را حفظ می کند.
- [-u]پس از اتمام انتقال، فایل منبع را حذف می کند.
- [-c]به فشرده سازی داده ها در طول عملیات انتقال اجازه می دهد.
نکات قابل توجه دستور SCP در لینوکس
از آنجایی که SCP از رمزگذاری SSH استفاده می کند، برای امکان انتقال فایل به رمز عبور ssh نیاز دارید. علاوه بر این، داشتن مجوز خواندن در دستگاهی که میخواهید از آن کپی کنید و امتیازاتی را روی دستگاه(هایی) که قرار است در آن کپی کنید، بنویسید! برای احراز هویت و تنظیم اتصال، باید با استفاده از دستور زیر یک جفت کلید ssh در ترمینال ایجاد کنید:
ssh-keygen -t rsa
این کلید را با استفاده از سیستم از راه دور کپی می کنید:
ssh-copy-id user@remote_machine
پس از احراز هویت به دستگاه(های) راه دور، کلید عمومی کپی می شود و شما آماده شروع انتقال هستید. اگر نمی توانید رمز عبور ریشه را برای هر یک از سیستم ها به خاطر بسپارید، می توانید از کاربر ssh بخواهید فایلی را انتخاب کند که کلید خصوصی هویت برای تأیید RSA به طور خودکار خوانده می شود. برای پروتکل نسخه 2، مسیر هویت کلید میزبان پیش فرض ~/.ssh/id_dsa است، در حالی که برای پروتکل نسخه 1، ~/.ssh/id_rsa است. در مرحله بعد، باید محل ذخیره بک آپ های کلید خصوصی و عمومی را پیدا کنید تا بتوانید از دستور ssh برای استفاده خودکار از آنها استفاده کنید.
ssh -i /back-up/home/user/.ssh/id_dsa user@yourserver.servername.domain
نکته حرفه ای
این گزینه مقدار پیشفرض –overwrite [yes] را دارد، بنابراین مگر اینکه گزینه –overwrite no یا –overwrite ask را در دستور scp خود تعیین کنید، این عملیات فایلهایی را که دارای نامها و مکانهای یکسان هستند بدون هیچ هشداری بازنویسی میکند. اگر فایل های بزرگی را انتقال می دهید، توصیه می کنیم از جلسه tmux استفاده کنید یا دستور را در صفحه دیگری اجرا کنید. علاوه بر این، باید از گزینه -v برای نقل و انتقالات بزرگ نیز استفاده کنید. scp را مجبور می کند تا هرگونه مشکل اشکال زدایی، احراز هویت یا پیکربندی را نشان دهد.
کپی کردن فایل ها با دستور SCP در لینوکس
مزیت SCP این است که به شما امکان می دهد فایل ها را بین دو هاست یا بین یک هاست و یک سرور لوکال منتقل کنید. بیایید ببینیم که چگونه باید از دستور برای هر نوع انتقال استفاده شود. برای مثال:
scp /users/hostinger/desktop/scp.zip root@191.162.0.2:/redaction/article
انتقال فایل لوکال به مقصد راه دور
ما یک فایل محلی scp.zip را به کاربر دستگاه راه دور به نام root کپی می کنیم. نام کاربری با آدرس IP سرور همراه است.مثلا :
scp /users/hostinger/desktop/scp.zip root@191.162.0.2:/redaction/article
اگر تأیید خودکار سرویس گیرنده ssh را پیکربندی نکرده باشید، از شما رمز عبور کاربر دستگاه راه دور خواسته می شود و یک نشانگر پیشرفت خواهید دید. به این صورت خواهد بود:
root@191.162.0.2’s password:scp.zip 100% 0 0.0KB/s 00:00
اما فرض کنید دستگاه از راه دور برای دریافت اتصالات SSH روی پورتی غیر از پورت پیشفرض 22 پیکربندی شده است. در این حالت، باید این پورت را با استفاده از یک گزینه مشخص کنید.
scp -P 2322 /users/Hostinger/desktop/scp.zip root@191.162.0.2:/redaction/article
اگر می خواهید نام فایل را نیز در حین عملیات انتقال تغییر دهید، دستور شما به این صورت خواهد بود (اگر پورت شما پیش فرض نیست، فقط -P و شماره پورت را اضافه کنید):
scp /users/hostinger/desktop/scp.zip root@191.162.0.2:/editorial/article/newSCPName.zip
اگر می خواهید پوشه ای را کپی کنید که حاوی فایل ها ویا زیرپوشه های بیشتری است، از گزینه -r که قبلا توضیح دادیم استفاده کنید:
scp -r /users/Hostinger/desktop/scp.zip root@191.162.0.2:/redaction/article
انتقال فایل از راه دور به ماشین لوکال
در این فرآیند، منبع و هدف دستور برعکس میشوند، بنابراین باید در نحو شما منعکس شود. این بار سعی می کنیم scp.zip را از همان میزبان راه دور در دستگاه محلی خود کپی کنیم:
scp root@191.162.0.2:/editorial/article/scp.zip users/hostinger/office
فایل از راه دور به یک مکان راه دور دیگر
برای کپی کردن فایل ها از یک هاست راه دور به هاست دیگر، پس از اجرای این دستور در ترمینال خود، باید رمز عبور هر دو حساب را وارد کنید.
به عنوان مثال :
scp root@191.162.0.2:/redaction/article/scp.zip Hostinger@11.10.0.1:/post
دستور بالا فایل منبع /redaction/article/scp.zip را از میزبان اول به میزبان دوم کپی می کند. برای کپی پوشه ها کافیست گزینه -r را اضافه کنید و مسیر پوشه را به جای فایل داخل آن مشخص کنید، همانطور که قبلا انجام دادیم.
در شرایط عادی، فایل مستقیماً از اولین میزبان راه دور به دومین میزبان می رود. با این حال، اگر می خواهید عملیات را روی دستگاه خود تغییر مسیر دهید، می توانید option-3 را اضافه کنید:
scp -3 root@191.162.0.2:/redaction/article/scp.zip Hostinger@11.10.0.1:/publication
این تمام چیزی است که وجود دارد!
نتیجه گیری
در این مقاله، نحوه انتقال آسان فایل ها بین هاست محلی و راه دور را با دستور scp Linux یاد گرفتیم. این در هنگام کار با چندین سرور بسیار مفید است. پروتکل کپی امن اجازه می دهد تا اطلاعات با موفقیت از یک میزبان راه دور به میزبان دیگر بدون نیاز به ورود به سیستم کپی شود.
علاوه بر این، این روش انتقال فایل از راه دور، داده های شما را با یک پوسته ایمن رمزگذاری می کند که محرمانه بودن اطلاعات ارسال شده را تضمین می کند.