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

رامونا امیری ۲۹ بهمن ۱۳۹۹ ۰ دیدگاه

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

هر دو این پروتکل‌ها از برنامه‌های کلاینت-سروری برای برقراری ارتباط از راه دور استفاده می‌کنند. این ابزارها به شما امکان دسترسی و مدیریت از راه دور به سایر کامپیوتر‌ها، انتقال فایل و تقریباً انجام هر کاری را که بطور معمول می‌توانستید به صورت فیزیکی در مقابل دستگاه انجام دهید، را به صورت مجازی میسر می‌کنند.

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

پیش نیازها جهت اتصال به SSH در سرور لینوکس

قبل از اینکه بتوانید یک ارتباط ایمن از طریق پروتکل ریموت دسکتاپ با یک سیستم از راه دور برقرار کنید، چندین پیش شرط وجود دارد:

  • سیستم راه دور باید همیشه روشن و به شبکه متصل باشد.
  • برنامه‌های سمت کلاینت و سرور باید نصب و فعال شده باشند.
  • باید آدرس IP یا نام دستگاه راه دور مورد نظر را برای برقراری ارتباط در اختیار داشته باشید.
  • باید مجوزهای لازم برای دسترسی به سیستم راه دور را داشته باشید.
  • در تنظیمات فایروال، باید مجوز ارتباط از راه دور فعال شده باشد.

SSH چیست؟

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

مدیران سیستم و شبکه و همچنین افرادی که نیاز به مدیریت سیستم از راه دور به روشی کاملاً ایمن دارند، بیشترین استفاده را از این پروتکل می‌کنند.

چگونه اتصال به SSH درسرور لینوکس را فعال کنیم؟

SSH چگونه کار می کند؟

برای اتصال به SSH درسرور لینوکس به دو مولفه نیاز دارید: یک مولفه در سمت کلاینت و یک مولفه در سمت سرور. یک client SSH برنامه ‌ای است که روی سیستم نصب می‌کنید و از آن برای ارتباط با سیستم یا سرور دیگر استفاده خواهید کرد. سیستم کلاینت از اطلاعات ارائه شده جهت لاگین به هاست راه دور و شروع یک اتصال استفاده می‌کند و در صورت تایید اعتبار و احراز هویت، اتصال رمزگذاری شده برقرار می‌شود.

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

در سمت سرور نیز مولفه ای به نام SSH daemon وجود دارد که به طور پیوسته در حال گوش کردن به درخواست‌های اتصال از سمت کلاینت‌های احتمالی بر روی یک پورت TCP/IP خاص است. هنگامی که کلاینت شروع به برقراری ارتباط می‌کند، SSH daemon نیز با کمک نرم افزار و نسخه‌های پروتکل مورد پشتیبانی خود نسبت به پاسخ دهی اقدام کرده و داده‌های شناسایی و احراز هویتی خود را مبادله می‌کند. اگر اعتبارنامه‌های ارائه شده مورد تایید باشد، SSH یک  session جدیدی را برای برقراری ارتباط و باز کردن محیط کاری ایجاد می‌کند. نسخه پیش فرض پروتکل SSH برای ارتباط بین سرور و کلاینت SSH نسخه ۲ است.

چگونه اتصال به SSH درسرور لینوکس را فعال کنیم؟

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

جهت اتصال به SSH درسرور لینوکس هم به یک کلاینت و هم به یک سرور احتیاج دارید، ابتدا باید مطمئن شوید که برنامه مورد نظر هم بر روی سیستم لوکال و هم بر روی سیستم راه دور نصب شده است. یکی از متداول‌ترین ابزار‌های متن باز SSH (که به طور گسترده برای توزیع‌های لینوکس استفاده می‌شود) OpenSSH است. 

نصب OpenSSH نسبتاً ساده است. این امر مستلزم دسترسی به ترمینال هم در سمت سرور و هم در سیستمی دارد که از آن برای برقراری اتصال استفاده می‌کنید. توجه داشته باشید که SSH به صورت پیش فرض در سرور اوبونتو نصب نیست.

دستورات SSH لینوکس

راهنمای نصب Client OpenSSH

قبل از شروع به نصب SSH در سمت کلاینت، ابتدا مطمئن شوید که این برنامه از قبل نصب نشده است. در بسیاری از توزیع‌های لینوکس، client SSH از قبل نصب شده است. برای سیستم‌های تحت ویندوز نیز می‌توانید از نرم افزار PuTTY یا هر کلاینت دلخواه دیگر جهت دسترسی به سرور استفاده کنید.

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

برای بررسی اینکه آیا نرم افزار کلاینت از قبل در سیستم تحت لینوکس موجود است یا خیر، باید:

۱- صفحه ترمینال را برای اجرای SSH باز کنید. می‌توانید کلمه “Terminal” را جستجو کنید یا کلید‌هایCTRL + ALT + T را روی صفحه کلید خود فشار دهید.

۲- دستور ssh رادر ترمینال تایپ کنید و کلید Enter را فشار دهید.

۳- اگر کلاینت از قبل نصب شده باشد، پیامی مشابه شکل زیر دریافت خواهید کرد:

username@host:~$ ssh

usage: ssh [-1246AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
[-D [bind_address:]port] [-E log_file] [-e escape_char]
[-F configfile] [-I pkcs11] [-i identity_file]
[-J [user@]host[:port]] [-L address] [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address] [-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]]
[user@]hostname [command]

username@host:~$

این بدان معنی است که شما آماده برقراری ارتباط از راه دور به یک سیستم فیزیکی یا مجازی هستید. در غیر این صورت باید OpenSSH client را نصب کنید:

۱- برای نصب OpenSSH client بر روی سیستم خود دستور زیر را اجرا کنید: sudo apt-get install openssh -client

۲- در صورت نیاز، رمز عبور superuser را وارد کنید.

۳- برای تکمیل فرایند نصب، کلید Enter را بفشارید.

اکنون می‌توانید با استفاده از برنامه SSH در صورت در اختیار داشتن نام و آدرس IP سیستم راه دور و اطلاعات کاربری و مجوز‌های لازم، وارد هر دستگاهی شوید.

راهنمای نصب OpenSSH Server

برای پذیرش برقراری ارتباط SSH از راه دور یا جهت اتصال به SSH درسرور لینوکس، باید ابزار‌های لازم SSH در سیستم سرور نیز نصب شده باشد.

اگر می‌خواهید وجود نرم افزار OpenSSH server را در سیستم تحت اوبونتو راه دور که قصد برقراری ارتباط SSH با آن را دارید بررسی کنید، می‌توانید به صورت لوکال و به حالت لوکال هاست به آن متصل شوید:

۱- ترمینال را در سرور باز کنید. می‌توانید “Terminal” را جستجو کنید یا کلید‌های ترکیبی CTRL + ALT + T رادر صفحه کلید خود فشار دهید.

۲- در صفحه ترمینال دستور ssh localhost راتایپ کنید و کلید enter را بفشارید.

۳- برای سیستم‌های فاقد SSH server، با پیامی به صورت زیر مواجه خواهید شد:

username@host:~$ ssh localhost
ssh: connect to host localhost port 22: Connection refused username@host:~$

در صورت دریافت پیام فوق باید OpenSSH server را نصب کنید. بدین منظور ابتدا ترمینال را باز بگذارید و:

۱- برای نصب SSH server دستور زیر را اجرا کنید:

sudo apt-get install openssh-server ii.

۲- درصورت نیاز، رمز عبور superuser خود را وارد کنید.

۳- سپس با فشردن کلید‌های Enter و Y پس از اعلام فضای آزاد در دیسک، اقدام به ادامه فرایند نصب کنید.

فایل‌های پشتیبانی مورد نیاز نصب می‌شوند و سپس می‌توانید با تایپ این دستور بررسی کنید که آیا SSH server روی سیستم شما در حال اجرا است یا خیر؟

sudo service ssh status

در صورتی که سرویس SSH به درستی در حال اجرا باشد، پاسخ مشابه زیر در ترمینال قابل مشاهده خواهد بود:

username@host:-$ sudo service ssh status
• ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enab
Active: active (running) since Fr 2018-03-12 10:53:44 CET; 1min 22s ago Process: 1174 ExecReload=/bin/kill -HUP $MAINPID (code=exited, status=0/SUCCES

Main PID: 3165 (sshd)

روش دیگر برای آزمایش اینکه آیا OpenSSH server به درستی نصب شده و آماده پذیرش و پاسخگویی به درخواست‌های برقراری ارتباط هست یا خیر؟ اجرای دوباره دستور ssh localhost در ترمینال است. وقتی برای اولین بار این دستور را اجرا می‌کنید، پاسخ دریافت شده مشابه متن زیر خواهد بود:

username@host:~$ ssh localhost

The authenticity of host 'localhost (127.0.0.1)' can't be established. ECDSA key fingerprint is SHA256:9jqmhko9Yo1EQAS1QeNy9xKceHFG5F8W6kp7EX9U3Rs. Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.

username@host:~$

برای ادامه حرف y یا کلمه yes را وارد کنید.

تبریک، شما موفق شدید سرور خود را تنظیم کنید تا پذیرای درخواست اتصال SSH از سیستم‌های دیگر با استفاده از SSH client باشد.

نکته:

اکنون می‌توانید فایل تنظیمات SSH daemon را ویرایش کنید، به عنوان مثال می‌توانید پورت پیش فرض ارتباط SSH را تغییر دهید. بدین منظور در ترمینال، دستور زیر را اجرا کنید:

sudo nano /etc/ssh/sshd_config

فایل تنظیمات در ویرایشگر مورد نظر شما باز خواهد شد. در این مثال ما از ویرایشگر Nano استفاده کردیم.

در صورت تمایل یا نیاز به نصب Nano، این دستور را اجرا کنید:

sudo apt-get install nano

لطفا توجه داشته باشید که در صورت ایجاد هر گونه تغییر در فایل sshd_config باید سرویس SSH را با اجرای دستور زیر، هر بار مجدداً راه اندازی کنید:

sudo service ssh restart

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

حال که هم در کلاینت و هم در سرور OpenSSH را بر روی سیستم‌های مورد نظر خود نصب کرده اید می‌توانید با سرورهای خود یک ارتباط از راه دور امن ایجاد کنید. برای انجام این کار:

۱- ترمینال SSH را روی سیستم خود باز کنید و دستور زیر را اجرا کنید:

ssh your_username@host_ip_address

اگر نام کاربری موجود در سیستم لوکال شما با نام موجود در سروری که می‌خواهید به آن متصل شوید، مطابقت داشته باشد، می‌توانید دستور زیر را تایپ کنید:

ssh host_ip_address

و کلید Enter را بزنید.

۲- رمز عبور خود راوارد کرده و کلید Enter را بزنید. توجه داشته باشید که در هنگام تایپ رمز عبور، هیچ گونه تغییری در صفحه نمایش مشاهده نخواهید کرد. اگر قصد دارید رمز عبور را با copy و paste کردن وارد کنید، مطمئن شوید که آن را به صورت امن نگهداری کرده است و در فایل‌های متنی ذخیره نمی‌کنید.

۳- هنگامی که برای اولین بار به یک سرور متصل می‌شوید، از شما سوال می‌شود که آیا می‌خواهید به اتصال خود ادامه دهید یا خیر؟ فقط کلمه yes را تایپ کنید و کلید Enter رابزنید. این پیام فقط در اولین اقدام به اتصال ظاهر می‌شود، زیرا سرور راه دور در سیستم لوکال شما شناسایی نشده است.

۴- اکنون یک کلید انگشت نگاری ECDSA اضافه شده است و شما به سرور راه دور متصل هستید.

 

اگر سیستمی که می‌خواهید از راه دور به آن متصل شوید در شبکه لوکال شما واقع است، بهتر است به جای IP عمومی از IP اختصاصی استفاده کنید. در غیر این صورت فقط باید از آدرس IP عمومی استفاده کنید. علاوه بر این باید اطمینان حاصل کنید که پورت TCP درست به درخواست‌های برقراری اتصال OpenSSH گوش می‌دهد و تنظیمات port forwarding نیز صحیح هستند. اگر این تنظیمات را در فایل sshd_config تغییر نداده باشید، پورت پیش فرض ۲۲ است. شما همچنین می‌توانید شماره پورت را بعد از آدرس IP هاست اضافه کنید.

در اینجا مثالی از درخواست اتصال با استفاده از OpenSSH client نمایش داده شده است که در آن شماره پورت را نیز مشخص خواهیم کرد:

username@machine:~$ ssh phoenixnap@185.52.53.222 –p7654 phoenixnap@185.52.53.222’s password:

The authenticity of host '185.52.53.222 (185.52.53.222)' can't be established. ECDSA key fingerprint is SHA256:9lyrpzo5Yo1EQAS2QeHy9xKceHFH8F8W6kp7EX2O3Ps. Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ' 185.52.53.222' (ECDSA) to the list of known hosts. 

username@host:~$

اکنون می‌توانید یک سیستم راه دور را با استفاده از ترمینال خود مدیریت و کنترل کنید. اگر در اتصال به سرور راه دور مشکلی دارید، مطمئن شوید که:

  • آدرس IP سیستم راه دور به درستی وارد شده است.
  • پورتی که SSH daemon در آن در حال گوش دادن به درخواست است، توسط فایروال مسدود نشده یا به اشتباه هدایت نمی‌شود.
  • نام کاربری و رمز عبور شما صحیح است.
  • نرم افزار SSH به درستی نصب شده است.

برای اتصال به سرور لینوکس روشهای متعددی وجود دارد که روش اتصال بر اساس نوع سیستم عامل مورد استفاده متفاوت است. با توجه به اینکه اغلب ما از سیستم عامل ویندوز استفاده می‌کنیم به همین جهت می‌بایست از نرم افزار PuTTY برای وصل شدن به سرور لینوکس کمک بگیریم. اگر چنانچه از سیستم عامل لینوکس یا توزیع‌های آن استفاده می‌کنید، به راحتی می‌توانید توسط ابزار Terminal به سرور لینوکس خود وصل شوید، که ما در این مقاله مراحل اتصال به SSH درسرور لینوکس را شرح دادیم. چنانچه در مورد نحوه اتصال به راهنمایی بیشتری نیاز داشتید با تیم فنی سینداد تماس حاصل کنید تا مشاوره بگیرید.

فناوران شبکه سینداد (آهنگ نوآوری)

سینداد یعنی هدیه‌ی سیمرغ، یا فرزند سیمرغ؛ به عبارتی یعنی خود سیمرغ، با همه ی شگفتی هایش، اما جوانتر و سرزنده تر. و این چیزی است که ما سعی می کنیم در سینداد باشیم. از سال ۱۳۸۵ دانش مان را به صورت خدماتی در حوزه ی هاستینگ، شبکه و تولید نرم افزار در اختیار مشتریان مان قرار داده ایم و به این افتخار می کنیم که تک تک آنها تا به امروز همراه ما مانده اند. باور داریم که سینداد صرفاً یک شرکت نیست، بلکه نوعی باور است به ارائه ی شگفت انگیز از هر چیز.