مقدمه ای در مورد ارتباط با سرور (Server) لینوکس (Linux)، از طریق SSH

قبل از صحبت در مورد ارتباط با سرور (Server) لینوکس (Linux)، از طریق SSH ، باید مفهوم خود SSH را شرح دهیم.

ارتباط از طریق SSH :

SSH ، روشی برای برقراری ارتباط امن (Secure) با یک کامپیوتر از راه دور (Remote Computer) (کامپیوتری که از نظر فیزیکی از ما دور است) می باشد که در آن، از یک خط فرمان (Command Line) برای اجرای دستورات (Command) مورد نظرمان در آن کامپیوتر، استفاده می نماییم.

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

ارتباط از طریق SSH ، بر مبنای یونیکس (UNIX) می باشد (UNIX-based) و خود عبارت SSH ، مخفف Secure Shell است.

ارتباط با سرور (Server) لینوکس (Linux)، از طریق SSH :

منظور ما از ارتباط با سرور (Server) لینوکس (Linux) از طریق SSH ، این است که شما توسط کامپیوتر خانگی خود به یک سرور (Server) لینوکس (Linux) متصل شده و دستورات مورد نظر خود را در آن سرور (Server) اجرا می نمایید :

مقدمه ای در مورد ارتباط با سرور (Server)  لینوکس (Linux)، از طریق SSH

سرور (Server) لینوکس (Linux)، سروری (Server) است که یک نسخه از سیستم عامل لینوکس (Linux) بر روی آن نصب باشد. به عنوان مثال، سرور اختصاصی (Dedicated Server) که بنده اکنون با آن کار می کنم، دارای سیستم عامل CentOS که نسخه ای از سیستم عامل لینوکس (Linux) است، می باشد.

در این سری آموزش ها که در این بخش از کلیدستان خواهیم نوشت، منظورمان از سرور (Server) لینوکس (Linux)، سروری (Server) است که برای بارگذاری وب سایت ها (Website) به کار می رود (بر اساس سیستم عامل لینوکس (Linux)، مثلا دارای سیستم عامل CentOS) و یک کنترل پنل (مثل کنترل پنل DirectAdmin) نیز بر روی سرور (Server) نصب می باشد که برای مدیریت کاربران (User) و وب سایت های آنها مورد استفاده قرار می گیرد.

در واقع هدف ما، استفاده از سرور (Server) لینوکس (Linux)، به منظور بارگذاری وب سایت ها (Website) بر روی آن می باشد (توسط خودمان (به عنوان یک کاربر) یا توسط اشخاصی (کاربرانی) که آنها را مدیریت خواهیم کرد).

میزان امکان استفاده شما از یک سرور (Server)، به یکی از دو صورت زیر خواهد بود (اگر تفاوت بین آن دو را نمی دانید، آن را در ادامه توضیح خواهیم داد) :

1- سرور اشتراکی (Shared Server)

2- سرور اختصاصی (Dedicated Server)

ما در کلیدستان با این فرض که دارای سرور اختصاصی (Dedicated Server) می باشید، آموزش ها را خواهیم نوشت، اما حتی اگر دارای سرور اشتراکی (Shared Server) باشید و شرکت هاستینگ ارائه دهنده آن، اجازه ارتباط از طریق SSH را به شما داده باشد، باز هم آموزش ها برای شما مفید خواهد بود، اما با این تفاوت که به خیلی از موارد مهم مربوط به سرور (Server)، دسترسی نخواهید داشت و تنها در حوزه مربوط به فایل های خود بر روی آن سرور (Server)، می توانید نغییراتی را اجرا نمایید.

نکته

اصولا بنده تا به امروز، در سرور اشتراکی (Shared Server) به سراغ استفاده از ارتباط SSH نرفته ام و نمی دانم که شرکت های هاستینگ چه محدودیت هایی را در این زمینه اعمال می کنند، اما مطمئنا حتی اگر اجازه ارتباط از طریق SSH را داشته باشید، محدودیت های زیادی خواهید داشت (چون فقط بخشی از فایل های سرور متعلق به شما است و همچنین قرار نیست که بتوانید تنظیمات کلی و مهم سرور را تغییر دهید) و بنده مورد خاصی در ذهنم نیست که نتوانید آن را از طریق کنترل پنل (مثلا کنترل پنل DirectAdmin) اجرا نمایید و مجبور باشید که از ارتباط SSH استفاده نمایید (به همین دلیل است که می گویم هیچگاه در سرور اشتراکی (Shared Server) به سراغ استفاده از ارتباط SSH نرفته ام، چون کنترل پنل (مثلا کنترل پنل DirectAdmin) تمام نیازهای بنده را برطرف می کرد).

اما در مورد سرور اختصاصی (Dedicated Server)، کاملا وضعیت متفاوت است و اگر سرور اختصاصی (Dedicated Server) داشته باشید، برخی موارد است که برای تغییر آنها، کنترل پنل (مثل کنترل پنل DirectAdmin) جوابگو نیست و باید حتما به سراغ ارتباط با سرور (Server) از طریق SSH و اجرای دستورات لازم برای اعمال تغییرات بروید (برای تغییرات کلی و برخی تنظیمات مهم در سرور).

تفاوت بین سرور اشتراکی (Shared Server) و سرور اختصاصی (Dedicated Server) :

هنگامی که شما یک سرور اختصاصی (Dedicated Server) داشته باشید (سروری که به طور کامل در اختیار خود شما است و اشتراکی نمی باشد)، آنگاه این اجازه را دارید که به وسیله نرم افزاری که بر روی کامپیوتر شخصی خود نصب می کنید (مثل نرم افزار PuTTY)، با استفاده از اطلاعات کاربران سطح بالا (کاربر root یا کاربر admin)، به سرور (Server) خود از طریق SSH متصل شوید و با تایپ دستورات مورد نظر خود، عملیات های مورد نظرتان را در سرور (Server) اجرا نمایید :

مقدمه ای در مورد ارتباط با سرور (Server)  لینوکس (Linux)، از طریق SSH

چنانچه شما از خدمات اشتراکی یک شرکت هاستینگ (یعنی سرور اشتراکی (Shared Server)) استفاده می نمایید (هاست های معمولی که به صورت پلن های مختلف ارائه می شوند)، آن شرکت هاستینگ، بخشی از امکانات سخت افزاری یک سرور (Server) را در اختیار شما قرار داده است.

ممکن است شما با نام کاربری (Username) و رمز عبور (Password) خود به کنترل پنل نصب بر روی سرور (Server) (مثلا کنترل پنل DirectAdmin) وارد شوید و وب سایت خود را مدیریت کنید، اما مسئولان آن شرکت هاستینگ در همان کنترل پنل (مثلا کنترل پنل DirectAdmin) دسترسی سطح بالاتری برای اعمال تغییرات و تغییر تنظیمات سرور دارند. یعنی در کنترل پنل، گزینه هایی برای آن مسئولان نمایش داده می شود که کاربران معمولی که از خدمات اشتراکی آن سرور (Server) از شرکت هاسینگ استفاده می کنند، به آنها دسترسی ندارند (در واقع اختیارات کاربر admin).

به عنوان مثال، یک کاربر (User) معمولی، بعد از ورود به کنترل پنل DirectAdmin ، آن را به صورت زیر مشاهده می کند :

مقدمه ای در مورد ارتباط با سرور (Server)  لینوکس (Linux)، از طریق SSH

اما مسئولان آن شرکت هاستینگ، با ورود به کنترل پنل DirectAdmin با اطلاعات کاربر admin ، کنترل پنل را با گزینه های بیشتری (تنظیماتی برای کل سرور و مدیریت کاربران معمولی و ...) مشاهده خواهند کرد :

مقدمه ای در مورد ارتباط با سرور (Server)  لینوکس (Linux)، از طریق SSH

و همان طور که مشاهده می کنید، 3 سطح از کنترل پنل با نام های Admin Level و Reseller Level و User Level برای آنها وجود دارد که با کلیک بر روی هر یک از آنها، می توانند گزینه ها و تنظیمات مربوط به آنها را مشاهده نمایند.

اما مسئولان شرکت هاستینگ، جدا از دسترسی سطح بالاتر در کنترل پنل (مثل کنترل پنل DirectAdmin)، امکان برقراری ارتباط با سرور (Server) لینوکس (Linux) از طریق ارتباط SSH را نیز دارند (در سطح بالا و با قابلیت اعمال تغییرات کلی و تنظیمات مهم) و توسط آن می توانند دستورات متنی خود را تایپ کرده و اجرا نمایند و بدین شکل، به نوعی دارای آزادی عمل بالایی برای تغییرات در سرور (Server) خواهند بود (چون معمولا امکانات کنترل پنل های مختلف، محدود است و آزادی 100 درصدی برای اعمال تغییرات در آنها وجود ندارد).

معمولا مسئولانی که با سرور (Server) کار می کنند، از اطلاعات کاربری دو کاربر اصلی root و admin استفاده می کنند (اگرچه امکان دادن دسترسی های سطح بالاتر به کاربران دیگر نیز وجود دارد (چون می توانند برای استفاده خود، کاربرانی را ساخته و دسترسی های سطح بالا به آنها بدهند)، ولی معمولا از همین دو کاربر اصلی استفاده می شود).

هنگامی که وب سایت ما به اندازه ای گسترش پیدا کرده باشد که دیگر، خدمات اشتراکی شرکت های هاستینگ (سرورهایی که منابع آنها بین تعدادی کاربر تقسیم می شود) جوابگوی نیاز ما نباشد، باید به سراغ اجاره یک سرور اختصاصی (Dedicated Server) برویم و بنابراین اطلاعات کاربری دو کاربر اصلی root و admin را در آن سرور اختصاصی (Dedicated Server) که اجاره می کنیم، خواهیم داشت. یعنی شرکت هاستینگ، سخت افزار یک سرور کامل را در اختیار ما قرار می دهد و معمولا تنها یک سیستم عامل اولیه (مثل CentOS) و یک کنترل پنل (مثل کنترل پنل DirectAdmin) را برای ما بر روی سرور نصب می کند (که البته معمولا پرسیده می شود که چه سیستم عامل و چه کنترل پنلی مد نظرمان است) (معمولا هزینه ای برای نصب آنها دریافت می شود) و اطلاعات کاربری دو کاربر اصلی root و admin را هم برای ما ارسال می نمایند (اگر تنها اطلاعات کاربر admin به شما داده شده، می توانید از مسئولان شرکت هاستینگ، اطلاعات کاربر root برای آن سرور را نیز بپرسید).

نکته

معمولا مسئولان شرکت هاستینگ، در صورت دریافت یک مبلغ ماهیانه، مدیریت سرور را نیز قبول می کنند (برای افرادی که قصد دارند درگیر مدیریت سرور نشوند). اما در آموزش های کلیدستان، فرض ما بر این است که شما قصد دارید که خودتان این کار را انجام دهید. انتخاب بین این دو، بستگی به میزان تجربه شما دارد.

هنگامی که ما یک سرور اختصاصی (Dedicated Server) تهیه (اجاره) نماییم (سروری که تمام سخت افزار آن در اختیار ما می باشد و دسترسی کامل برای استفاده از آن داشته باشیم)، یکی از راه های ارتباطی ما با سرور (Server) لینوکس (Linux) می تواند ارتباط از طریق SSH باشد که در آن، دیگر با واسطه های کاربری (مثل کنترل پنل DirectAdmin) سر و کار نداریم و می توانیم مستقیما دستورات مورد نظر خود را در یک پنجره، تایپ نماییم تا اجرا شوند و نتایج اجرای آنها نیز در همانجا به صورت متن، مشاهده گردد.

شاید برای شما این سوال پیش بیاید که با وجود نصب بودن کنترل پنل هایی مثل کنترل پنل DirectAdmin بر روی یک سرور (Server) لینوکس (Linux)، دیگر چه نیازی است که مجبور باشیم که عملیات های مورد نظرمان در سرور (Server) را از طریق اجرای دستورات متنی در ارتباط SSH اعمال نماییم ؟

پاسخ این است که همان طور که قبلا نیز ذکر کردیم، معمولا در کنترل پنل های مختلف مثل کنترل پنل DirectAdmin ، اگرچه امکانات فراوانی برای راحت کردن کار با سرور (Server) در نظر گرفته می شود (چون واسط گرافیکی هستند)، اما این امکانات، معمولا همگی تغییرات امکان پذیر در سرور (Server) را در اختیار ما قرار نمی دهند و برای اعمال برخی تغییرات در سرور، امکان استفاده از کنترل پنل هایی مثل کنترل پنل DirectAdmin برای آن تغییرات وجود ندارد (حداقل تا نسخه هایی از آن کنترل پنل ها که تا به امروز منتشر شده است) و عملا باید از اجرای دستورات در سرور (Server)، از طریق ارتباط SSH اقدام نماییم.

علاوه بر این، اگر به دستورات مرتبط با SSH تسلط داشته باشید، سرعت عمل شما در اجرای عملیات های مورد نظرتان، بیشتر از کنترل پنل ها (مثل کنترل پنل DirectAdmin) خواهد بود.

دقت کنید که اگر تاکنون تجربه ای در زمینه داشتن وب سایت (Website) نداشته اید، توصیه نمی شود که از یک سرور اختصاصی (Dedicated Server) استفاده نمایید. چون معمولا دریافت خدمات اشتراکی از شرکت های هاستینگ، هم باعث می شود که اندازه ای هزینه کنید که تنها به همان مقدار منابع (سخت افزار) نیاز دارید و هم اینکه در ابتدا تنها با کنترل پنل در سطح پایین و همچنین مفاهیم مرتبط با نگهداری وب سایت آشنا می شوید. سپس در آینده، هر زمان که به یک سرور اختصاصی (Dedicated Server) نیاز پیدا کردید، این مفاهیم را یاد خواهید گرفت.

نکته مهم

یکی از اشتباهات رایج در وب، تهیه امکانات سخت افزاری زیاد در شروع فعالیت یک وب سایت است (مثلا با فرض بازدید 5000 کاربر از وب سایت در هر روز از ماه اول راه اندازی وب سایت)، اما بعد که وب سایت راه اندازی می شود، استقبال کاربران از وب سایت، به شدت کمتر از انتظار مدیران آن بوده (مثلا بازدید 50 کاربر در هر روز و یا حتی کمتر) و همین هزینه سنگین سخت افزار که عملا سودی هم نداشته است، تبدیل به یکی از عوامل برای نا امیدی و شکست وب سایت خواهد شد.

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

این تذکر داده شد که چنانچه این آموزش ها، باعث علاقه مندی شما به تهیه سرور اختصاصی (Dedicated Server) شد، این جنبه مهم را مد نظر داشته باشید.

البته برخی گروه های بزرگ برنامه نویسی هستند که همزمان با راه اندازی یک وب سایت، یک سری تبلیغات گسترده با هزینه بالا را نیز انجام می دهند و بنابراین وضعیت برای آنها متفاوت است و باید قبل از راه اندازی وب سایت، با کارشناسان برای پیشبینی میزان بازدید از وب سایت در همان زمان شروع تبلیغات، مشورت کنند و ببینند که توصیه آنها برای تهیه (اجاره) سخت افزار چیست، تا با کمبود سخت افزار، بازدید کاربران هدایت شده از تبلیغات، به بازدیدهای ناموفق تبدیل نشود (این موارد خیلی پیچیده است و خود بنده هیچ نظری در این زمینه ندارم، چون حتی ممکن است کارشناسان، بازدید بالایی را پیشبینی کنند، اما رفتار کاربران به گونه ای دیگر باشد. در واقع مثل فروش فیلم ها در سینماها، که هیچکس نمی تواند میزان استقبال از آنها را پیشبینی کند).

احتیاط در مورد اجرای دستورات از طریق ارتباط SSH :

نکته مهم

هنگامی که شما از طریق SSH به سرور (Server) متصل شده اید، چون آزادی زیادی برای اعمال تغییرات در سرور (Server) دارید (آزادی بیشتر از کنترل پنل هایی مثل کنترل پنل DirectAdmin)، بنابراین اگر به اشتباه، دستورات نادرست و مخربی را اجرا نمایید و ناخواسته اطلاعاتی از وب سایت حذف شوند و یا بخشی از اطلاعات سیستم عامل یا کنترل پنل نصب شده بر روی سرور (Server)، حذف شود و یا تنظیماتی به شکل غلط تغییر داده شوند، دچار مشکلات بسیار زیادی خواهید شد و حداقل تا زمان تعمیر و یا نصب مجدد سیستم عامل یا کنترل پنل و یا بارگذاری مجدد اطلاعات وب سایت از Backup های تهیه شده از آن (البته اگر Backup داشته باشید!)، وب سایت یا وب سایت های بارگذاری شده بر روی سرور (Server)، دچار مشکل خواهند بود.

البته همیشه امکان جبران اشتباه وجود ندارد و ممکن است اطلاعاتی از وب سایت یا وب سایت ها را از دست دهید که هیچ فایل پشتیبانی (Backup) از آنها نداشته باشید.

همه این موارد را ذکر کردیم تا اخطار دهیم که در هنگام ارتباط با سرور (Server) از طریق SSH ، تنها زمانی یک دستور را اجرا نمایید که صد در صد آن دستور را می شناسید و دقیقا می دانید که چه عملیاتی را اجرا می کند و اگر راهنماهایی را از یک وب سایت در مورد آن دستور خوانده اید، قبل از اجرای دستور، راهنمای آن دستور را حداقل از 2 وب سایت معتبر دیگر نیز بخوانید تا مطمئن شوید که آن وب سایت به درستی عملکرد دستور را شرح داده است و شما آن را به خوبی متوجه شده اید (حتی اگر راهنمای دستور را از همین وب سایت، یعنی کلیدستان، می خوانید، باز هم قبل از اجرا، حتما راهنمای آن دستور را در 2 وب سایت دیگر نیز بخوانید و این را تبدیل به یک عادت کنید).

و مهمتر از همه اینکه، ((وقتی خسته هستید))، به سراغ اجرای دستورات توسط SSH نروید، چون شاید فکر کنید که با کار کردن در هنگام خستگی، کمی در زمان صرفه جویی می کنید، اما همین صرفه جویی ممکن است باعث به وجود آمدن یک مشکل جدی و اضافه شدن چند روز کاری برای جبران آن شود (اجرای دستورات، نیاز به تمرکز دارد).

نویسنده علیرضا گلمکانی
شماره کلید 735
گزینه ها
به اشتراک گذاری (Share) در شبکه های اجتماعی
نظرات 0 0 0

ارسال نظر جدید (بدون نیاز به عضو بودن در وب سایت)