سرور ابری

لاگین کردن از طریق SSH در سرور ابری (راهنمای ورود Root User)

Shahin Noei Shahin Noei
33 بازدید 0 دیدگاه 16 بهمن 1401 زمان مطالعه: 15 دقیقه
/storage/post-covers/1673942157_2023-01-17_what-is-keyless-ssl-830x250.png /storage/post-images/1673942157_2023-01-17_what-is-keyless-ssl-370x370.png
لاگین کردن از طریق SSH در سرور ابری (راهنمای ورود Root User)

بعد از ساخت سرور ابری در میزبان کلود می توانید همانند کامپیوتر خود به آن متصل شده و از سیستم عامل استفاده کنید. اما برای اطمینان از دسترسی کاربران مجاز به این سرورها، اکثر سرورهای ابری از کلیدهای SSH استفاده می کنند. SSH در واقع یک پروتکل شبکه ای است که می توان از طریق آن و با استفاده از رابط دستوری (Command Line) از راه دور به یک سیستم متصل شد. در این مطلب به طور مفصل در خصوص پروتکل SSH و نحوه ورود به سرورهای ابری بحث خواهیم کرد.

سپر امنیتی، Secure Socket Shell یا SSH یک پروتکل شبکه ای است که به کاربران، بخصوص ادمین های سیستم ها، راهی امن تر را برای اتصال به دستگاه مورد نظر فراهم می کنند. به عبارتی، بین دو دستگاه درون یک شبکه باز نظیر اینترنت، این پروتکل از اعتبارسنجی کلید عمومی و پسوردهای قوی در کنار داده های ارتباطی رمزنگاری شده استفاده می کند.

در اصل SSH به عنوان جایگزینی برای شبیه سازهای ناامن ترمینال ها یا برنامه های ورود به سیستم (مثل Telnet یا RSH) ساخته شد. اما به عنوان یک پروتکل انتقال فایل (FTP) و RCP (Remote Copy) نیز مورد استفاده قرار گرفته است.

با این وجود بیشترین استفاده SSH، جهت اتصال به یک ترمینال در یک سرور ابری ساعتی یا مجازی است. مدل چنین دستوری به این شکل است:

ssh UserName@SSHserver.example.com

 

این دستور تلاشی برای اتصال کاربر به سروری تحت عنوان server.example.com است. اگر این دستور برای اولین ارتباط بین لوکال هاست و سرور باشد، کاربر با پیغامی شبیه به پیغام زیر مواجه خواهد شد که گویای عدم برقراری اتصال بوده و شامل یک کلید عمومی است.

The authenticity of host 'sample.ssh.com' cannot be established.
DSA key fingerprint is 01:23:45:67:89:ab:cd:ef:ff:fe:dc:ba:98:76:54:32:10.
Are you sure you want to continue connecting (yes/no)?

اگر پاسخ سوال انتهای این پیغام را yes دهید، منجر به ادامه یافتن Session شده و Host Key (کلید عمومی) در فایلی تحت عنوان known_hosts روی سیستم لوکال ذخیره خواهد شد. این یک فایل hidden است که در دایرکتوری اصلی کاربر ذخیره می شود. زمانی که این کلید یک بار ذخیره شود، در دفعات آتی سیستم کاربر می تواند به طور مستقیم و بدون نیاز به تاییده وارد آن سرور شود.

نحوه اتصال به سرور ابری با استفاده از SSH

برای ورود به کامند لاین و GUI می توان از کلیدهای SSH استفاده کرد؛ پس بگذارید دو سیستم عامل لینوکس و ویندوز را به طور مختصر بررسی کنیم:

اتصال به سیستم عامل ویندوزی

برای اتصال به سیستم های ابری با سیستم عامل ویندوز، باید یک کلاینتِ از پیش کانفیگ شده داشته باشید (مثل OpenSSH, WinSCP یا PuTTY).

برای اینکار PuTTY را در سشن اجرا کنید و آی پی یا هاست نیم خود را با Public IP مرتبط با سرور ابری پیکربندی (کانفیگ) کنید.

پس از ساخت SSH Key Pair یا یک جفت کلید عمومی و خصوصی SSH می توانید با استفاده از آنها وارد سرور ابری خود شوید.

پس در ناحیه کاربری ارائه دهنده خود، روی "open" کلیک کنید تا یک پنجره جدید با رابط دستوری (Command-Line) باز شود.

سپس پسورد خود را وارد کنید. پس از تایید اعتبار دسترسی توسط سیستم، از شما خواسته می شود تا دستورات SSH مورد نیاز را اجرا کنید.

کد را در Command Line اجرا کنید تا سیستم ورود شما به ابر را از طریق SSH تایید کند. در این صورت تمام Function های قفل در سرور ابری برای شما باز خواهد شد.

  • اتصال به سیستم عامل لینوکسی

برای ورود به یک سرور ابری با سیستم عامل لینوکس بوسیله کلید SSH باید یک جفت کلید (Key Pair) ایجاد کنید. در داشبورد برخی از ارائه دهندگان این نوع زیرساخت ها می توانید از دستور SSH (SSH command) در کنار Hostname یا آی پی سرور ابری استفاده کنید. سپس سیستم از شما رمز عبوری برای تایید اعتبار دسترسی به سیستم درخواست می کند.

در ادامه به طور مفصل نحوه اتصال به سرور ابری لینوکسی با SSH را بررسی خواهیم کرد...

  • پیش نیازها

  1. وضعیت سرور ابری (ابرک) خود را چک کنید: سرور ابری شما باید آماده استفاده بوده و در وضعیت فعال یا روشن قرار داشته باشد.
  2. اطلاعات SSH: هنگام ساخت سرور ابری باید یک کلید SSH با کلید عمومی و خصوصی اضافه کنید.
  3. نصب کلاینت SSH: ممکن است در کامپیوتر لوکال خود به صورت پیش فرض یک SSH Client نصب داشته باشید. در غیر این صورت برای لینوکس و macOS نرم افزار OpenSSH را نصب کنید. البته در میزبان کلود می توانید هنگام سفارش سرور مجازی ابری، به سادگی یک کلید SSH جدید ایجاد کنید.
  4. آدرس آی پی و نام کاربری: پس از ایجاد سرور ابری برای شما یک IPv4 و یک نام کاربری ایجاد شده و در پنل کاربری به شما نمایش داده خواهد شد.
  • اتصال به سرور ابری لینوکس

فرآیند زیر را دنبال کنید تا با استفاده از SSH Client به سرور ابری لینوکسی خود متصل شوید.

در پنجره ترمینال باز شده، از دستور SSH برای اتصال به سرور استفاده کنید. مسیر و نام فایل کلید خصوصی (Private Key) را تعیین کنید (.pem). سپس یوزر نیم سرور ابری و آدرس آی پی آن را وارد کنید.

ssh -i /path/key-pair-name.pem instance-user-name@instance-IPv6-address

 

برای مثال ممکن است نام کاربریSSH  شما عبارتی شبیه به این باشد:

ubuntu@146.19.217.179

در اینجا ubuntu نام کاربری است که باید دقیقاً همین عبارت را جایگزین instance-user-name@instance-IPv6-address در دستور فوق کنید.

در خصوص key-pair-name.pem باید مسیر و نام فایل حاوی کلید خصوصی خود را وارد کنید.

در اولین اتصال، پاسخی شبیه با این دریافت خواهید کرد:

 

The authenticity of host 'ec2-146.19.217.179.compute-1.example.com (146.19.217.179)' can't be established.

 

ECDSA key fingerprint is l4UB/neBad9tvkgJf1QZWxheQmR59WgrgzEimCG6kZY.

 

Are you sure you want to continue connecting (yes/no)?

Yes را وارد کنید و enter.

اتصال به سرور ابری لینوکس میزبان کلود با استفاده از SSH

در صورتی که از قبل در میزبان کلود کلید SSH ساخته اید، می توانید آن را هنگام سفارش سرور ابری جدید انتخاب کنید، در غیر این صورت اگر قصد ساخت کلید SSH جدید را دارید هنگام ثبت سفارش ابرک، روی دکمه "ساخت کلید جدید" کلیک کنید.

سرور ابری

دقت داشته باشید که هنگام ساخت کلید SSH جدید در میزبان کلود، باید کلید خصوصی ایجاد شده را جایی کپی کنید، چراکه پس از بستن پنجره دیگر به آن دسترسی نخواهید داشت.

پس از ساخت ابرک و ورود به صفحه مدیریت در داشبورد میزبان کلود، می توانید IP سرور ابری و نام SSH Key خود را مشاهده کنید. برای ورود به ابرک روی دکمه "کنسول" کلیک کنید.

سرور ابری

در پنجره باز شده می توانید روی دکمه Send CtrlAltDel کلیک کنید. با این کار یک دستور CtrlAltDel در سرور ایجاد می شود. سپس با تصویر زیر مواجه خواهید شد:

سرور ابری

در مقابل test login یوزر نیم خود را وارد کنید؛ که در اینجا Ubuntu می باشد. Test در مثال ما نام سرور ابری ایجاد شده است. این مورد برای شما مطابق با نام ابرک تان خواهد بود.

در ادامه از شما پسورد خواسته می شود که باید password ایمیل شده از طرف میزبان کلود را در اینجا وارد کنید. 

*پس از ایجاد سرور ابری اطلاعات مربوط به ابرک به ایمیل حساب کاربری شما ارسال خواهد شد.

سرور ابری

البته می توانید در صورت دسترسی به username و password روت، عبارت root را وارد کنید!

ورود SSH به عنوان Root User

در حالت پیش فرض ورود SSH به عنوان یوزر Root به دلایل امنیتی محدود می شود، با این حال، ممکن است برای اجرای برخی از دستورات ورود به عنوان کاربر root نیاز باشد، که در این شرایط برای اتصال از طریق SSH باید Root User Password در دسترس بوده و تنظیم شود.

برای فعال کردن ورود مستقیم از طریق SSH توسط کاربر Root، باید این موضوع را در فایل sshd_config خود کانفیگ یا پیکربندی کنید.

•    به controller متصل شده و به عنوان root user وارد شوید.

•    فایل  /etc/ssh/sshd_configرا با یک ویرایشگر مناسب باز کنید.

•    در قسمت اعتبارسنجی یا authentication گزینه PermitRootLogin را با وارد کردن "yes" فعال یا به عبارتی دسترسی را مجاز کنید: 

PermitRootLogin yes

•    دقیقا مطابق مورد قبل باید allowpassword را نیز مجاز کنید.

•    از طریق /etc/init.d/sshd restart سرویس SSH را ری استارت کنید.

 

در این صورت می توانید هم با پسورد و هم با ssh key به عنوان root user وارد سرور ابری خود شوید. البته می توانید بجای عبارت yes در مقابل PermitRootLogin از عبارت "without-password" را وارد کرده و تنها ورود با ssh key را برای root user مجاز کنید.

کپی کردن یک کلید عمومی (Public Key) در یک سرور ابری

روش های فوق برای ساخت یک سرور جدید با کلیدهای جدید کاربرد دارد؛ اما آیا می توان یک کلید SSH را درون یک سرور موجود کپی کرد؟

کپی کردن کلید عمومی با استفاده از SSH-Copy-ID در سرور ابری

این روش ساده ترین راه برای کپی کردن یک Public Key است. تنها کاری که باید انجام دهید استفاده از یک ابزار utility است که می توانید آن را در OpenSSH suite استاندارد پیدا کنید.

برای کپی کردن یک کلید باید سینتکس (syntax) ssh-copy-id را اجرا کرده و وارد سرور ابری مورد نظر شوید. البته باید اکانتی که قصد ورود به آن دارید را نیز مشخص کنید و امکان دسترسی با پسورد به اکانت نیز باید فعال باشد.

دستور (command) به این شکل خواهد بود:

ssh-copy-id username@remote_host

 

در ادامه با این پیغام مواجه خواهید شد:

 

The authenticity of host '111.111.11.111 (111.111.11.111)' can't be established.

 

ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.

 

Are you sure you want to continue connecting (yes/no)? yes

پس از وارد کردن yes، ابزار اکانت شما را برای پیدا کردن کلید عمومی تان اسکن می کند. پس از یافتن، از شما می خواهد تا پسورد خود را وارد کنید.

 

/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed

 

/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys

 

username@111.111.11.111's password:

 

حال پس از اتصال به اکانت، ابزار محتویات کلید ~/.ssh/id_rsa.pub را کپی کرده و آن را در کلیدهای مجاز درون دایرکتوری ~/.ssh سرور ابری پیست می کند. سپس این پیغام را مشاهده خواهید کرد:

Number of key(s) added: 1

Now try logging into the machine, with: "ssh 'username@111.111.11.111'"

and check to make sure that only the key(s) you wanted were added.

این پیغام یعنی شما با موفقیت کلید عمومی خود را در سرور ابری کپی کرده اید.

جمع بندی

برای اتصال به سرور ابری می توانید ضمن حفظ امنیت از روش های مختلفی استفاده کنید. یکی از این روش ها ورود از طریق SSH است که برای استفاده از آن باید یک جفت کلید عمومی و خصوصی ایجاد کرده و هنگام ورود به کنسول از آنها استفاده کنید! البته اگر از OS Reload یا Rescue استفاده کنید، باید تمام این مراحل پیکربندی را مجدد طی کنید. در این مطلب توضیحات کامل برای اتصال به سرور ابری در اختیار شما قرار گرفت. امیدواریم این مطلب برای شما مفید واقع شده باشد.

پیشنهاد ویژه

CDN ابری میزبان کلود

سرعت در بارگذاری و تحویل محتوای سایت

سرعت در بارگذاری و تحویل محتوای سایت

سرعت در بارگذاری و تحویل محتوای سایت

سرعت در بارگذاری و تحویل محتوای سایت

مشاهده پلانها
نویسنده مطلب Shahin Noei

نویسنده مطلب

لاگین کردن از طریق SSH در سرور ابری (راهنمای ورود Root User) 0 دیدگاه