انتقال فایل ها در شبکه لینوکس

منتشر شده در دسته : بلاگ, خط فرمان لینوکس

انتقال فایل در لینوکس چگونه انجام می شود؟ چگونه در لینوکس فایل ها را از طریق شبکه انتقال دهیم . برای انتقال فایل ها در لینوکس از طریق شبکه راههای مختلفی وجود دارد که در این آموزش به صورت جامع به شرح موضوع خواهیم پرداخت. تا اینجای کار مسلما می دانید که برای انتقال فایل ها در لینوکس بر روی سیستم خودتان بایستی از دستور cp استفاده کنید. اگر بخواهید فایل ها را از یک سیستم لینوکس به سیستم لینوکس دیگری یا یک لینوکس سرور از طریق شبکه داخلی یا اینترنت منتقل کنید می توانید از دو دستور کاربردی SCP و SFTP استفاده کنید.

دستور SCP مخفف Secure CoPy به معنای کپی امن و دستور SFTP مخفف Secure File Transfer Protocol می باشد که در واقع همان FTP امن می باشد. هر دو این دستورهای برگرفته از SSH هستند که درباره این نوع انتقال فایل نیز صحبت خواهیم کرد.

به منظور استفاده از این دستورها نیاز به یک کلاینت و یک سرور دارید که سرور قادر به دریافت و کلاینت قادر به انتقال فایل ها می باشد. در لینوکس و مک می توانید از دستورهای scp و sftp استفاده کنید. در ویندوز می توانید از کلاینت پاتی SCP یا فایل pscp.exe و همچنین از کلاینت پاتی sftp یا فایل psftp.exe استفاده کنید.

شما همچنین می توانید از یکسری کلاینت های گرافیکی نیز استفاده کنید . کلاینت Cyberduck در ویندوز  و مک قابل نصب و استفاده می باشد. کلاینت مورد علاقه کاربران لینوکس FileZilla می باشد که البته قابل نصب بر روی لینوکس و ویندوز نیز می باشد. WinSCP یک کلاینت طراحی شده فقط برای ویندوز می باشد. برنامه زیاد دیگری وجود دارد که برخی رایگان و برخی دیگر دارای لایسنس هستند.

انتقال فایل ها در لینوکس

قبل از شروع برای تست انتقال فایل ما از یک سیستم کالی لینوکس به عنوان سرور SSH استفاده می کنیم. شما می توانید از سیستم لینوکسی دیگری که دارای سرور SSH باشد (حتی یک سرور آنلاین لینوکس) استفاده کنید.

به کالی لینوکس رفته و خط فرمان را باز کنید. دستور زیر را وارد کرده تا از وضعیت سرویس ssh مطمئن شوید.

service ssh status

انتقال فایل - انتقال فایل در شبکه - انتقال فایل ها در شبکه لینوکس - جابجایی فایل در شبکه

در صورتیکه سرویس غیرفعال بود با استفاده از دستور زیر آن را فعال کنید و مجددا وضعیت را مشاهده کنید.

service ssh start
service ssh status

انتقال فایل - انتقال فایل در شبکه - انتقال فایل ها در شبکه لینوکس - جابجایی فایل در شبکه

سرویس فعال می شود.

برای ایجاد ارتباط ssh می توانید از یوزر root استفاده کنید ولی برای اینکه تفاوت بین این دو یوزر در حین اتصال برای شما مشخص باشد من یک کاربر دیگر با نام emily ایجاد کرده و آن را عضو گروه ادمین می کنم. به این منظور دستورهای زیر را درون کنسول وارد کنید :

adduser emily
adduser emily sudo

انتقال فایل - انتقال فایل در شبکه - انتقال فایل ها در شبکه لینوکس - جابجایی فایل در شبکه

آدرس آیپی این سیستم ۱۹۲.۱۶۸.۱.۱۰ می باشد. به سیستم لینوکسی دیگر خود رفته (که یک کالی دیگر می باشد) و با استفاده از دستورهای زیر یک ارتباط ساده ssh را برقرار کنید . این کار با استفاده از یوزر Emily به سادگی قابل انجام است .

انتقال فایل - انتقال فایل در شبکه - انتقال فایل ها در شبکه لینوکس - جابجایی فایل در شبکه

حال اگر بخواهیم همین دستور را با استفاده از یوزر root انجام دهیم با خطا دسترسی مواجه می شویم.

انتقال فایل - انتقال فایل در شبکه - انتقال فایل ها در شبکه لینوکس - جابجایی فایل در شبکه

به سرور ssh یعنی سیستم ۱۹۲.۱۶۸.۱.۱۰ رفته و فایل زیر را درون ویرایشگر متنی دلخواه خود باز کنید :

gedit /etc/ssh/sshd_config

انتقال فایل - انتقال فایل در شبکه - انتقال فایل ها در شبکه لینوکس - جابجایی فایل در شبکه

به جستجو PermitRootLogin بپردازید . همانطور که مشاهده می کنید امکان ریموت ssh با استفاده از کاربر روت به صورت پیش فرض بر روی کالی لینوکس غیرفعال شده است که یک اقدام امنیتی است.

برای فعال سازی این مقدار را به صورت زیر تغییر دهید :

انتقال فایل - انتقال فایل در شبکه - انتقال فایل ها در شبکه لینوکس - جابجایی فایل در شبکه

فایل را ذخیره کنید و خارج شوید و حتما یکبار سرور ssh را با استفاده از دستور زیر ریستارت کنید :

service ssh restart

اکنون اگر دوباره با یوزر ssh تلاش برای اتصال صورت پذیرد بدون مشکل اتصال صورت می گیرد.

انتقال فایل - انتقال فایل در شبکه - انتقال فایل ها در شبکه لینوکس - جابجایی فایل در شبکه

با استفاده از scp شما بایستی بدانید چه فایلی را می خواهید روی سرور منتقل کنید و بنا بر آن دستور خود را وارد کنید . اگر می خواهید تجربه تعاملی تری را درون خط فرمان داشته باشید از دستور sftp استفاده کنید .

همچنین در صورتیکه ftp روی سرور هدف فعال باشد می توانید از این دستور رایج نیز برای انتقال فایل استفاده کنید هرچند اعتبارنامه های تبادلی شما به صورت متن ساده منتقل می شود (نه رمزی) .همچنین فایل های ارسالی و دریافتی شما هم رمزنگاری نمی شوند. پس بهتر است از scp یا sftp استفاده کنید.

خوب کار را با دستور sftp شروع کرده و به سرور کالی لینوکس با آدرس آیپی ۱۹۲.۱۶۸.۱.۱۰ متصل می شویم :


زمانیکه به سرور ریموت متصل شدید , درون دایرکتوری خانگی کاربر (در اینجا مسیر /home/Emily/) قرار می گیرید . برای نمایش دایرکتوری فعلی دستور pwd را وارد کنید. برای نمایش فایل های موجود دستور ls را وارد کنید . این کاربر را به تازگی ایجاد کردیم و هیچ فایلی در پوشه کاربر موجود نیست .

برای آپلود فایل می توانید از دستور put netamooz.txt استفاده کنیم فایل netamooz.txt  که روی سیستم لوکال وجود دارد را بر روی سرور آپلود می کنیم :

اکنون بار دیگر دستور ls را وارد کرده تا محتویات پوشه را ببینیم و از آپلود موفقیت آمیز مطمئن شویم. با استفاده از دستور rm netamooz.txt فایل را حذف می کنیم . در نهایت با استفاده از دستور quit خارج می شویم.

انتقال فایل - انتقال فایل در شبکه - انتقال فایل ها در شبکه لینوکس - جابجایی فایل در شبکه

با استفاده از دستور Scp می توانید فایل ها را از سیستم لوکال به سیستم ریموت آپلود کنید فقط نکته این است که بایستی مسیر فایل لوکال مبدا و مسیر مقصد را بدانید. مسیر فایل netamooz.txt در پوشه فعلی است ولی مسیر کمی متفاوت است . از ساختار دستوری زیر استفاده می کنیم :

scp netamooz.txt [email protected]:/tmp/

انتقال فایل - انتقال فایل در شبکه - انتقال فایل ها در شبکه لینوکس - جابجایی فایل در شبکه

همانگونه که مشاهده می کنید ابتدا مسیر فایل در سیستم لوکال یعنی مبدا سپس نام کاربری و نام هاست یعنی [email protected] را وارد می کنیم . سپس دو نقطه : و مسیر مقصد بر روی سرور را وارد می کنیم .

این بار فایل را در دایرکتوری home کپی می کنیم . این کار را با استفاده از /~ که اشاره به پوشه home دارد انجام می دهیم. دقت داشته باشید که به جای /~ می توانید مسیر کامل پوشه خانگی کاربر یعنی /home/emily/ را نیز وارد کنید.

برای اطمینان از کپی فایل بار دیگر با استفاده از sftp یا ssh یک ارتباط تعاملی برقرار می کنیم.

انتقال فایل - انتقال فایل در شبکه - انتقال فایل ها در شبکه لینوکس - جابجایی فایل در شبکه

شما همچنین می توانید با استفاده از برنامه محبوب FileZilla به صورت زیر یک اتصال sftp را به سادگی برقرار کنید و به این طریق به سادگی می توانید فایل ها را درگ و دراپ کرده به سرور آپلود کنید.

انتقال فایل - انتقال فایل در شبکه - انتقال فایل ها در شبکه لینوکس - جابجایی فایل در شبکه

صاحب امتیاز نت آموز : نویسنده , مدرس و متخصص در زمینه امنیت شبکه های رایانه ای

یک دیدگاه

نظرات غیرمرتبط با محتوای این مطلب تایید نخواهند شد.

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *