نحوه انتقال فایل از طریق SSH
SSH یا Secure Shell یک پروتکل ارتباطی امن است که به کاربران امکان میدهد از راه دور به سرورهای لینوکسی متصل شده و دادهها یا فایلهای خود را بهصورت رمزنگاریشده منتقل کنند. در گذشته، ارتباط با سرورها معمولاً از طریق پروتکلهایی مانند Telnet یا FTP انجام میشد که امنیت بسیار پایینی داشتند؛ زیرا اطلاعات، از جمله رمز عبور، بهصورت متن ساده (Plain Text) ارسال میشد.
اما SSH این ضعف را برطرف کرد و بستری فراهم آورد تا انتقال فایل بین سرورهای لینوکس یا از سیستم شخصی به سرور، در یک تونل رمزنگاریشده و امن انجام شود.
در واقع SSH تنها برای ورود به محیط ترمینال نیست؛ بلکه ابزاری قدرتمند برای مدیریت سرور، اجرای دستورات از راه دور، و انتقال فایلها است. به همین دلیل، امروزه تقریباً تمام مدیران سرور و توسعهدهندگان برای انتقال داده از SSH و ابزارهای مرتبط با آن مانند SCP و SFTP استفاده میکنند.
SSH چیست و چه کاربردی دارد؟
سرویس یا پروتکل ssh یک روش امن برای برقراری ارتباط با سرور از راه دور میباشد.
در گذشته کاربران برای ارتباط با سرور، از راههای غیر امنی همچون سرویس Telnet استفاده میکردند که همین موضوع باعث ایجاد مشکلات جدی و دزدیده شدن اطلاعات کاربران در حین تبادل اطلاعات با سرور مقصد میشد. همین امر باعث شد تا توسعهدهندههای لینوکس به دنبال روشی امنتر و قابل اطمینان تری برای ارتباط با سرور شوند بدین منظور سرویس ssh رونمایی شد.
رمزنگاری در SSH چگونه عمل میکند؟
در ارتباط SSH، تمام دادهها از جمله فایلها، دستورات و پاسخها، بهصورت رمزنگاریشده (Encrypted) منتقل میشوند. این فرآیند با استفاده از کلیدهای RSA Public Key و مکانیزم Client-Server Authentication انجام میشود.
یعنی زمانی که شما به یک سرور SSH متصل میشوید، دو کلید درگیر هستند:
-
کلید خصوصی (Private Key) در دستگاه شما
-
کلید عمومی (Public Key) در سرور
تنها در صورتی که این دو کلید با یکدیگر منطبق باشند، تبادل اطلاعات انجام میشود. در نتیجه حتی اگر شخصی به دادههای بین مسیر دسترسی پیدا کند، به دلیل رمزنگاری قوی، نمیتواند محتوای آن را بخواند.
منظور از رمزنگاری در ssh چیست؟
با اتصال به SSH در سرور لینوکس در واقع اطلاعات ردوبدل شده بین کاربران و سرور به صورت رمزنگاری شده تبادل شده و دزدیده شدن اطلاعات در مسیر ارتباط هیچ منفعتی برای نفوذگر نداشته و اطلاعات ربوده شده غیرقابل خواندن میباشد.
رمزنگاری اطلاعات تبادلی بین کلاینت و سرور از نوع RSA public key و مدل احراز Client-Server میباشد به این معنی که اطلاعات تبادل شده از هر دو سمت فقط با وجود کلید تبادلی دارای معنا خواهد بود در غیر این صورت غیرقابل استفاده خواهد بود.
نحوه اتصال به سرویس ssh
برای اتصال به SSH در سرور لینوکس باید از یک نرمافزار واسط به نام putty استفاده کنید و برای اتصال از طریق سیستمعامل لینوکس شخصی خود به لینوکس سرور شما نیازی به نرمافزار خاصی ندارید و توسط دستور زیر به راحتی میتوانید به سرور مقصد متصل شوید.
ssh root@serverip –p port
در دستور بالا به جای serverip آدرس ip سرور خود را وارد کرده و به جای port آدرس پورت مربوط به سرویس ssh را وارد نمایید در حالت پیشفرض شماره این پورت ۲۲ بوده ولی ممکن هستش مدیر سرور به جهت برقراری امنیت این پورت را تغییر داده باشید.
نکته: سرویس ssh خود هیچ عملکردی به عنوان ورودی دستورات لینوکس ندارد و دستورات لینوکس مجزا از این پروتکل هستند. سرویس ssh یک راه امن برای ارتباط کاربر با سرور بوده و بعد از اتصال میتوان توسط دستورات، سرور را به صورت کامل مدیریت کرد.
نحوه انتقال فایل از طریق SSH
معمولا برای این کار ما از دستور wget استفاده می کنیم ابتدا وارد SSH شده و دستور wget را مطابق با دستور زیر تایپ می کنیم.
wget [File_Address]
مثلا اگر بخواهید فایل phpini.txt را از سایت google.com دانلود کنید از دستور زیر استفاده می کنیم.
wget https://google.com/phpini.txt
همچنین از طریق نرم افزار های FTP همانند FileZilla , CuteFTP , … می توانید به SSH دسترسی داشته باشید و فایل منتقل نمایید. برای این منظور می بایست حال SFTP را در نوع اتصال خودتان انتخاب نمایید و با نام کاربری و پسورد روت سرور به سرور متصل شوید.
نکته: SFTP یا همان SSH File Transfer Protocol یک پروتکل انتقال فایل است که به صورت پیشفرض پس از تنظیمات SSH بر روی سیستم عامل لینوکس فعال میشود. با استفاده از SFTP شما قادر خواهید بود فایلهای خود را در یک تونل امن به لینوکس خود منتقل کرده و یا آنها را نیز دریافت نمایید.
جمعبندی
انتقال فایل از طریق SSH یکی از مهمترین مهارتها برای هر مدیر سرور یا توسعهدهندهی وب است. با استفاده از ابزارهایی مانند SCP، SFTP و wget میتوانید فایلها را بین سرورها جابهجا کنید، نسخههای پشتیبان را منتقل نمایید و مدیریت دادهها را به شکل ایمن انجام دهید.
استفاده از SSH نهتنها امنیت تبادل اطلاعات را تضمین میکند، بلکه با قابلیت رمزنگاری و احراز هویت قوی، جلوی بسیاری از حملات سایبری را میگیرد.
بنابراین اگر در حال مدیریت پروژههای آنلاین هستید، یادگیری نحوه استفاده از SSH برای انتقال فایلها یک ضرورت است، نه یک گزینه.