پروتکل ssh چیست؟
پروتکل ssh چیست؟
در این مقاله قصد داریم به این موضوع بپردازیم که منظور از پروتکل ssh چیست؟
همه کاربران در سیستم عامل لینوکس بایستی قادر به مدیریت سیستم عامل از راه دور از طریق شبکه به صورت ریموت باشند.
تقریبا همه مدیران وب سایت ها و وب مسترها به این شیوه سرورهاي سایت هاي خود را مدیریت می کنند
توجه: سرورهاي لینوکس به دلیل قیمت پایینتر خیلی رایج است
در گذشته قبل از سازگاري کامل اینترنت، برنامه هاي رایج زیادي به منظور لاگین به سرورهاي ریموت وجود داشت.
مثل برنامه هاي telnet و rlogin.
هرچند این برنامه ها از همان ایرادي که دستور ftp داشت رنج می بردند.
تمامی ارتباطات این برنامه ها به صورت متن ساده (رمزنگاري نشده) انجام می گرفت (حتی ارسال نام کاربري و رمزعبور نیز متن ساده بود)
در نتیجه در این دوران آشفته سرقت هاي اینترنتی استفاده از آنها دیگر مناسب نبود.
تا آنجا که دو رویکرد دیگر (SSH و SCP) به میان آمد که می خواهیم درباره آنها صحبت بکنیم.
SSH:
براي حل مشکل هاي موجود در Telnet پروتکل جدیدي با نام SSH مخفف (Secure Shell) توسعه یافت.
پروتکل SSH دو مشکل اصلی در رابطه با ارتباط ایمن را بر طرف می کند.
اول اینکه ssh میزبان ریموت را تشخیص هویت می کند (از حملات شخص واسط Man-In-The-Middle جلوگیري کرده)
دوم اینکه همه ارتباطات انجام شده بین میزبان هاي لوکال و ریموت را رمزنگاري می کند.
SSH از دو بخش تشکیل شده است:
یک سرور SSH که بر روي میزبان ریموت اجرا شده و منتظر تماس هاي ورودي بر روي پورت 22 می ماند.
در حالی که کلاینت SSH بر روي ماشین محلی براي برقراري ارتباط با ماشین سرور استفاده می شود.
بیشتر توزیع هاي لینوکس، داراي یک اجرا از SSH هستند که OpenSSH نام دارد که از پروژه BSD گرفته شده است.
برخی توزیع ها به صورت پیش فرض داراي بسته هاي هم کلاینت و هم سرور SSH هستند (مثل ردهت)، در حالی که برخی دیگر مثل (اوبونتو) فقط داراي کلاینت هستند.
براي فعال سازي یک سیستم به دریافت تماس هاي ریموت، بایستی بسته OpenSSH-server نصب، پیکربندي و اجرا شده باشد.
اگر سیستم در پشت یک فایروال قرار گرفته است، بایستی به اتصالات ورودي شبکه بر روي پورت 22 TCP اجازه ورود بدهد.
نکته: اگر یک سیستم ریموت براي اتصال ندارید، ولی می خواهید این مثال ها را امتحان کنید
ابتدا مطمئن شوید که بسته OpenSSH-server نصب شده باشد، که از localhost به عنوان نام میزبان ریموت استفاده می کند.
به این طریق ماشین با خود ارتباط برقرار می کند.
نصب بسته OpenSSH-server:
برای نصب این بسته نرم افزاری، همانطور که قبلا گفتیم می توانیم از دستور apt-get استفاده کنیم.
apt-get install OpenSSH-server #
گفتیم براي اتصال، شما دسترسی به سرور جداگانه ندارید.
بعد از نصب OpenSSH-server می توانیم از سیستم خود به عنوان سرور استفاده کنیم.
یعنی در این حالت سیستم هم سرور هست هم کلاینت.
یعنی سیستم از طریق SSH به خودش متصل می شود. به این منظور نام سرور را localhost می نامیم.
همان طور که مشاهده می کنید اتصال ریموت برقرار است.
این اتصال تا زمانی که دستور exit را وارد کنید برقرار است.
شما همچنین می توانید با استفاده از یک کاربر دیگر به صورت ریموت متصل شوید.
براي مثال اگر کاربر پیش فرض ما rashvand باشد می توانیم با کاربر ali هم به صورت زیر متصل شویم.
علاوه بر اینها ssh ما را قادر می سازد تا یک دستور را اجرا کنیم.
براي مثال می توانیم دستور free را بر روي سیستم ریموت localhost اجرا کنیم به صورت زیر:
می توان این تکنیک را به شیوه اي جذاب تر استفاده کرد.
اجرای دستور ls:
براي مثال به صورت زیر در آن ما یک دستور ls را بر روي سیستم ریموت اجرا کرده و خروجی آن را در داخل یک فایل بر روي سیستم لوکال ذخیره می کنیم:
به استفاده از تک کوتیشن توجه کنید.
این کار انجام می شود چونکه نمی خواهیم بسط نام مسیر (expansion pathname) بر روي ماشین لوکال انجام شود.
به جاي آن می خواهیم بر روي سیستم ریموت صورت پذیرد.
علاوه بر این اگر بخواهیم خروجی به یک فایل در ماشین ریموت ریدایرکت شود.
می توانیم از عملگر ریدایرکت و نام فایل در بین تک کوتیشن استفاده کنیم. به صورت زیر:
scp و sftp انتقال ایمن فایل ها:
بسته OpenSSH همچنین شامل دو برنامه بوده که با استفاده از یک تانل رمزنگاري شده است.
SSH فایل ها را در عرض شبکه کپی می کنند.
اولین دستور Secure Copy) scp):
یعنی کپی ایمن می باشد.
که شبیه دستور مشابه آن یعنی cp براي کپی کردن فایل ها مورد استفاده قرار می گیرد.
آشکارترین ترین تفاوت آن این است، که نام مسیر مبدا یا مقصد با نام یک میزبان ریموت، به همراه یک کاراکتر نقطه همراه می شود.
براي مثال:
اگر می خواهیم یک سند با نام ssh.txt را از پوشه خانگی خود در یک سیستم ریموت (که در مثال ما همان localhost هست) به پوشه خانگی لوکال سیستم خود کپی کنیم، به صورت زیر عمل می کنیم:
. scp ali@localhost:test.txt #
ابتدا با استفاده از دستور ls مطمئن می شویم که فایل test.txt در سیستم لوکال وجود ندارد.
سپس با دستور . scp ali@localhost:test.txt فایل test.txt را از روي سیستم ریموت بر روي لوکال کپی می کنیم
توجه: نقطه پایان دستور را فراموش نکنید چون مسیر مقصد را نشان می دهد.
توجه داشته باشید که درست مثل SSH در دستور scp نیز می توانید از کاربران دیگر موجود استفاده کنید.
دومین برنامه به منظور کپی فایل sftp می باشد:
همانطور که از نام آن پیداست یک جایگزین امن براي FTP می باشد.
sftp درست مثل برنامه FTP عمل کرده و به جاي انتقال متن ساده، متن سایفر و رمزنگاري شده را انتقال می دهد.
sftp از تانل رمزنگاري شده SSH استفاده می کند.
sftp یک مزیت بزرگ بر استفاده از FTP دارد و آن این است که نیاز ندارد تا یک سرور FTP بر روي میزبان ریموت در حال اجرا باشد و فقط نیاز به اجراي سرور SSH دارد.
به این معنی که هر ماشین ریموتی که بتواند به کلاینت SSH متصل شود، قادر خواهد بود به عنوان یک سرور FTP نیز مورد استفاده قرار گیرد.
جدیدترین اخبار ثبتنام کلاس های انلاین مجموعه فراز نتورک را در صفحات اجتماعی دنبال کنید
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.