در این مقاله قصد داریم نحوه اتصال به SSH درسرور لینوکس را شرح دهیم پس با ما همراه باشید. دسترسی به سیستمها از راه دور از مدتها پیش به یک ضرورت تبدیل شد و در حال حاضر به سختی میتوان تصور کرد که نتوانیم کنترل کامپیوترها را از راه دور به دست بگیریم. بسته به سیستم عاملی که در حال استفاده از آن هستید، روشهای زیادی برای برقراری ارتباط با سیستمهای راه دور وجود دارد، اما دو مورد از پرکاربردترین این پروتکلها عبارتند از:
هر دو این پروتکلها از برنامههای کلاینت-سروری برای برقراری ارتباط از راه دور استفاده میکنند. این ابزارها به شما امکان دسترسی و مدیریت از راه دور به سایر کامپیوترها، انتقال فایل و تقریباً انجام هر کاری را که بطور معمول میتوانستید به صورت فیزیکی در مقابل دستگاه انجام دهید، را به صورت مجازی میسر میکنند.
قبل از اینکه بتوانید یک ارتباط ایمن از طریق پروتکل ریموت دسکتاپ با یک سیستم از راه دور برقرار کنید، چندین پیش شرط وجود دارد:
Secure Shell که گاهاً Secure Socket Shell نیز نامیده میشود، پروتکلی است که به شما امکان میدهد با استفاده از رابط کاربری متنی و دستورات، به طور ایمن به سیستم راه دور یا سرور متصل شوید. با برقراری اتصال امن SSH، یک shell session باز میشود و شما قادر خواهید بود با تایپ دستورات در کلاینت و سیستم لوکال خود، در سرور تغییرات ایجاد کنید.
مدیران سیستم و شبکه و همچنین افرادی که نیاز به مدیریت سیستم از راه دور به روشی کاملاً ایمن دارند، بیشترین استفاده را از این پروتکل میکنند.
برای اتصال به SSH درسرور لینوکس به دو مولفه نیاز دارید: یک مولفه در سمت کلاینت و یک مولفه در سمت سرور. یک client SSH برنامه ای است که روی سیستم نصب میکنید و از آن برای ارتباط با سیستم یا سرور دیگر استفاده خواهید کرد. سیستم کلاینت از اطلاعات ارائه شده جهت لاگین به هاست راه دور و شروع یک اتصال استفاده میکند و در صورت تایید اعتبار و احراز هویت، اتصال رمزگذاری شده برقرار میشود.
در سمت سرور نیز مولفه ای به نام SSH daemon وجود دارد که به طور پیوسته در حال گوش کردن به درخواستهای اتصال از سمت کلاینتهای احتمالی بر روی یک پورت TCP/IP خاص است. هنگامی که کلاینت شروع به برقراری ارتباط میکند، SSH daemon نیز با کمک نرم افزار و نسخههای پروتکل مورد پشتیبانی خود نسبت به پاسخ دهی اقدام کرده و دادههای شناسایی و احراز هویتی خود را مبادله میکند. اگر اعتبارنامههای ارائه شده مورد تایید باشد، SSH یک session جدیدی را برای برقراری ارتباط و باز کردن محیط کاری ایجاد میکند. نسخه پیش فرض پروتکل SSH برای ارتباط بین سرور و کلاینت SSH نسخه ۲ است.
جهت اتصال به SSH درسرور لینوکس هم به یک کلاینت و هم به یک سرور احتیاج دارید، ابتدا باید مطمئن شوید که برنامه مورد نظر هم بر روی سیستم لوکال و هم بر روی سیستم راه دور نصب شده است. یکی از متداولترین ابزارهای متن باز SSH (که به طور گسترده برای توزیعهای لینوکس استفاده میشود) OpenSSH است.
نصب OpenSSH نسبتاً ساده است. این امر مستلزم دسترسی به ترمینال هم در سمت سرور و هم در سیستمی دارد که از آن برای برقراری اتصال استفاده میکنید. توجه داشته باشید که SSH به صورت پیش فرض در سرور اوبونتو نصب نیست.
قبل از شروع به نصب SSH در سمت کلاینت، ابتدا مطمئن شوید که این برنامه از قبل نصب نشده است. در بسیاری از توزیعهای لینوکس، client SSH از قبل نصب شده است. برای سیستمهای تحت ویندوز نیز میتوانید از نرم افزار PuTTY یا هر کلاینت دلخواه دیگر جهت دسترسی به سرور استفاده کنید.
برای بررسی اینکه آیا نرم افزار کلاینت از قبل در سیستم تحت لینوکس موجود است یا خیر، باید:
۱- صفحه ترمینال را برای اجرای 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 سیستم راه دور و اطلاعات کاربری و مجوزهای لازم، وارد هر دستگاهی شوید.
برای پذیرش برقراری ارتباط 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
حال که هم در کلاینت و هم در سرور 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:~$
اکنون میتوانید یک سیستم راه دور را با استفاده از ترمینال خود مدیریت و کنترل کنید. اگر در اتصال به سرور راه دور مشکلی دارید، مطمئن شوید که:
برای اتصال به سرور لینوکس روشهای متعددی وجود دارد که روش اتصال بر اساس نوع سیستم عامل مورد استفاده متفاوت است. با توجه به اینکه اغلب ما از سیستم عامل ویندوز استفاده میکنیم به همین جهت میبایست از نرم افزار PuTTY برای وصل شدن به سرور لینوکس کمک بگیریم. اگر چنانچه از سیستم عامل لینوکس یا توزیعهای آن استفاده میکنید، به راحتی میتوانید توسط ابزار Terminal به سرور لینوکس خود وصل شوید، که ما در این مقاله مراحل اتصال به SSH درسرور لینوکس را شرح دادیم. چنانچه در مورد نحوه اتصال به راهنمایی بیشتری نیاز داشتید با تیم فنی سینداد تماس حاصل کنید تا مشاوره بگیرید.
سینداد یعنی هدیهی سیمرغ، یا فرزند سیمرغ؛ به عبارتی یعنی خود سیمرغ، با همه ی شگفتی هایش، اما جوانتر و سرزنده تر. و این چیزی است که ما سعی می کنیم در سینداد باشیم. از سال ۱۳۸۵ دانش مان را به صورت خدماتی در حوزه ی هاستینگ، شبکه و تولید نرم افزار در اختیار مشتریان مان قرار داده ایم و به این افتخار می کنیم که تک تک آنها تا به امروز همراه ما مانده اند. باور داریم که سینداد صرفاً یک شرکت نیست، بلکه نوعی باور است به ارائه ی شگفت انگیز از هر چیز.