اگر شما مجبور هستید در برخی مواقع مدیریت از راه دور انجام دهید، گاهی باید وارد یک سرور لینوکس شوید و کارهایی را انجام دهید. برای این کار شما باید از یک SSH (یک پوستهی امن) استفاده کنید. برای کسانی که تا به حال با چنین ابزاری کار نکردهاند، این یک تجربه هیجان انگیز است.
SSH چیست؟
SSH راهی امن برای ورود به یک دستگاه از راه دور است. هنگامی که وارد یک سرور شوید میتوانید هر دستوری را که برای کار با آن نیاز دارید اجرا کنید. از پیش بابت اینکه فکر میکنید استفاده از پروتکل SSH دشوار است، نگران نشوید. SSH هم ابزاری قدرتمند است هم استفاده از آن ساده است.
میخواهم شما را در نخستین مراحل استفاده از SSH راهنمایی کنم. من از توزیع Pop!_OS لینوکس استفاده میکنم ولی این اطلاعات بر روی هر توزیعی از لینوکس که از SSH پشتیبانی میکند (اکثر آنها پشتیبانی میکنند) ، کار میکند.
تنها چیزی که برای این آموزش نیاز داریم دو نمونهی در حال اجرا از لینوکس است. حال بیاید مشغول کار با SSH شویم.
ورود اولیه با SSH
استفاده از پروتکل SSH به شما این امکان را میدهد تا از یک ماشین محلی(Local) وارد یک ماشین راه دور(Remote) شوید. شما در هر دستگاه نیاز به یک حساب کاربری دارید. اجباری برای یکسان بودن این حسابها در هر دو دستگاه نیست ولی باید برای هر دو گواهی ورود داشته باشید.
همچنین به آدرس IP یا دامنه سروری که قصد ورود به آن را دارید نیاز است. برای مثال فرض کنید IP سرور راه دور ما 192.168.1.11 و حساب کاربری ما در هر دو دستگاه یکسان باشد.
وارد رایانه خود شوید، پنجره ترمینال را باز کنید و با دستور زیر وارد دستگاه راه دور شوید:
ssh 192.168.1.11
از شما نام کاربریتان در ماشین راه دور خواسته میشود و بعد از احراز هویت درست با رمزعبور، وارد ماشین راه دور میشوید و می توانید کار کنید.
حال اگر نام کاربری شما در رایانه محلیتان با نام کاربری دستگاه راهدور یکی نباشد چه باید کرد؟
فرض کنید نام کاربری شما در دستگاه راه دور majid باشد، در این شرایط دستور باید به شکل زیر باشد:
ssh majid@192.168.1.11
سپس رمز عبور مجید از شما خواسته میشود. پروتکل SSH به صورت معمول از پورت 22 استفاده میکند؛ برخی از مدیران به دلایل امنیتی ممکن است آن را تغییر دهند. اگر مسئول سرور، SSH را طوری پیکربندی کرده باشد تا به پورت 2022 گوش دهد، شما نمیتوانید از دستورهای استاندارد برای ورود استفاده کنید. شما باید یک p- به دستور بیفزایید، مانند نمونه زیر:
ssh majid@192.168.1.11 -p 2022
پیکربندی پروتکل SSH سایت
به خاطر داشتن همهی آن IPها و نامهای کاربری میتواند واقعاً دردسر ساز باشد. خوشبختانه SSH این امکان را میدهد تا یک فایل پیکربندی برای نگهداری این اطلاعات ایجاد کنید. به عنوان مثال شما برای ورود فهرست سرورهای زیر را دارید:
- webserver – 192.168.1.11
- email server – 192.168.1.12
- database server – 192.168.1.13
بیایید SSH را طوری پیکربندی کنید که فقط با دستورهای زیر بتوانید وارد شوید:
- ssh web1
- ssh email1
- ssh db1
همچنین فرض میکنیم نام حسابها در web1 و email1 به ترتیب majid و sadra است و در db1 نیز نامی مشابه با حساب رایانه محلی است. برای انجام این کار باید یک فایل پیکربندی در پوشه ssh./~ ایجاد کنیم. برای آن، به پنجره ترمینال دستگاه محلی خود برگردید و دستور مندرج در شکل زیر را اعمال کنید.
به جای USER باید نام کاربری لینوکستان را وارد کنید.
در فایل ایجاد شده باید خطهای زیر را وارد کنید:
Host web1
Hostname 192.168.1.11
User majid
Host email1
Hostname 192.168.1.12
User sadra
Host db1
Hostname 192.168.1.13
سپس آنها را ذخیره کنید و فایل را ببندید. حالا شما باید بتوانید با دستورهای کوتاه ssh web1،ssh email1 و ssh db1 وارد سرورها شوید. شایان ذکر است با این وجود برای ورود باز هم نیاز به رمزعبور است که برای web1 باید از رمز عبور حساب majid، برای email1 از رمز عبور حساب sadra و برای db1 نیز از رمز عبور حسابی که در رایانه محلی دارید استفاده کنید.
اجرای دستورها روی یک ماشین راه دور با استفاده از پروتکل SSH
در این مرحله با ترفندی کوچک و مفید آشنا میشوید. فرض کنید میخواهید بدون وارد شدن به یک ماشین راه دور دستوری را بر روی آن اجرا کنید. به عنوان مثال، میخواهید محتویات پوشهی خانه(home directory) کاربران راه دور را فهرست کنید. برای این کار باید دستور زیر را اعمال کنید:
ssh majid@192.168.1.11 ls /home/majid
حال از آنجا که فایل پیکربندی را تنظیم کردیم میتوانید از کد کوتاهتر زیر استفاده کنید:
ssh web1 ls /home/majid
ما میتوانیم این دستور را کوتاهتر کنیم چرا که لینوکس یک میانبر برای پوشهی خانه کاربر دارد. ما میتوانیم دستور را به شکل زیر بنویسیم:
/~ ssh web1 ls
دوستان عزیز، این اصول اولیه استفاده از پروتکل SSH برای ورود به یک ماشین لینوکس راه دور است. اگر شما مجبور شدید که مدیریت از راه دور یک ماشین لینوکس را انجام دهید، اینها کارهایی بود که باید برای ورود انجام میدادید.
بدون دیدگاه