آموزش سرورآموزش لینوکس

آموزش ریموت زدن به سرور لینوکسی با SSH و VNC

ریموت زدن به سرور لینوکسی به شیوه های مختلفی انجام می شود. دو روش مهم آن از طریق SSH و VNC است. در این مقاله قصد داریم روش ریموت زدن به سرور لینوکسی را به صورت کامل و جامع و با استفاده از این دو روش به شما آموزش دهیم. با ما همراه باشید:

SSH چیست؟

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

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

از آنجایی که ایجاد یک اتصال SSH به دو مولفه کلاینت و سرور نیاز دارد، باید مطمئن شوید که آنها به ترتیب روی کلاینت و سرور نصب شده اند. یک ابزار منبع باز SSH که به طور گسترده برای توزیع های لینوکس استفاده می شود OpenSSH است. نصب و راه اندازی OpenSSH نسبتا آسان است. برای این کار نیاز به دسترسی به ترمینال روی سرور و رایانه ای دارید که برای اتصال از آن استفاده می کنید. توجه داشته باشید که اوبونتو به طور پیش فرض سرور SSH را نصب نکرده است.

نحوه نصب کلاینت OpenSSH

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

برای بررسی اینکه آیا کلاینت در سیستم مبتنی بر لینوکس شما موجود است یا خیر، باید:

ترمینال SSH را دانلود کنید. می توانید “Terminal” را جستجو کنید یا CTRL + ALT + T را روی صفحه کلید خود فشار دهید. سپس دستور زیر را تایپ کنید و در ترمینال کلید 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 را نصب کنید:

دستور زیر را برای نصب کلاینت OpenSSH بر روی کامپیوتر خود اجرا کنید:

sudo apt-get install openssh-client

در صورت درخواست، رمز عبور Super user خود را وارد کنید. سپس Enter را بزنید تا نصب کامل شود.

اکنون می‌توانید به هر ماشینی که برنامه سمت سرور روی آن است، SSH کنید، مشروط بر اینکه از امتیازات لازم برای دسترسی و همچنین نام میزبان یا آدرس IP برخوردار باشید.

نحوه نصب سرور OpenSSH

برای پذیرش اتصالات SSH، یک ماشین باید بخش سمت سرور Toolbox نرم افزار SSH را داشته باشد.

اگر ابتدا می خواهید بررسی کنید که آیا OpenSSH در سرور اوبونتو رایانه راه دوری که نیاز به پذیرش اتصالات SSH دارد موجود است، می توانید سعی کنید به میزبان محلی متصل شوید:

ترمینال را روی دستگاه سرور باز کنید. می توانید “Terminal” را جستجو کنید یا CTRL + ALT + T را روی صفحه کلید خود فشار دهید. عبارت ssh localhost را تایپ کنید و کلید اینتر را بزنید.

برای سیستم‌هایی که سرور SSH نصب نشده است، پاسخ مشابه این خواهد بود:

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

در صورت وجود موارد فوق، باید برنامه سمت سرور OpenSSH را نصب کنید. ترمینال را باز بگذارید و برای نصب سرور SSH دستور زیر را اجرا کنید:

sudo apt-get install openssh-server ii.

در صورت درخواست، رمز عبور Super User خود را وارد کنید.

Enter و Y را برای اجازه دادن به نصب پس از درخواست فضای دیسک وارد کنید. فایل های پشتیبانی مورد نیاز نصب می شوند و سپس می توانید با تایپ این دستور بررسی کنید که آیا سرور SSH روی دستگاه اجرا می شود یا خیر:

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 به درستی نصب شده است و اتصالات را می پذیرد، این است که دستور ssh localhost را دوباره در ترمینال خود اجرا کنید.

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

اکنون که کلاینت و سرور OpenSSH را بر روی هر دستگاهی که نیاز دارید نصب کرده اید، می توانید یک ارتباط راه دور ایمن با سرورهای خود برقرار کنید. برای انجام این کار:

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

ssh your_username@host_ip_address

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

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

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

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

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

username@machine:~$ ssh [email protected] –p7654 [email protected]’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:~$

مراحل بعدی SSH

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

برخی از تنظیمات ویرایش فایل پیکربندی sshd عبارتند از:

  1. پورت پیش‌فرض TCP را در جایی که دیمون SSH در حال گوش دادن است، تغییر دهید. آن را از 22 به چیزی بسیار بالاتر تغییر دهید، به عنوان مثال 24596 و مطمئن شوید که از شماره پورتی استفاده نمی کنید که به راحتی قابل حدس زدن باشد، مانند 222، 2222 یا 22222.
  2. از جفت کلیدهای SSH برای احراز هویت جهت ورود بدون رمز عبور SSH استفاده کنید. آنها هم ایمن تر هستند و هم اجازه ورود بدون نیاز به رمز عبور را می دهند (که سریعتر و راحت تر است).
  3. ورودهای مبتنی بر رمز عبور را در سرور خود غیر فعال کنید. اگر این امکان را غیر فعال کنید، امکان استفاده از آن برای ورود به سرورهای شما از بین می رود و دیگر با استفاده از حملاتی همچون بروت فورس، نمی توان به سرور شما نفوذ پیدا کرد. البته به یاد داشته باشید که قبل از اینکه گزینه ورود با استفاده از رمزهای عبور را غیر فعال کنید، مطمئن شوید که احراز هویت با استفاده از جفت کلید به درستی کار می کند.
  4. دسترسی روت به سرور خود را غیر فعال کنید و از یک حساب معمولی با دستور su- استفاده کنید تا به کاربر اصلی تغییر دهید.

نحوه ریموت زدن به سرور لینوکسی با VNC

VNC به شما این امکان را می دهد که از راه دور یک محیط دسکتاپ را در رایانه راه اندازی کنید و از کامپیوتر خود با آن دسکتاپ تعامل داشته باشید. متأسفانه، VNC رمزگذاری داخلی ندارد، به این معنی که تمام اطلاعات ارسال شده از طریق VNC می تواند توسط اشخاص ثالث مورد نفوذ قرار گیرد. یک راه حل برای رفع این مشکل استفاده از ssh (پوسته امن) برای رمزگذاری ترافیک بین شما و میزبان راه دور شما است.

این آموزش اصول راه اندازی یک سرور VNC، بسته بندی آن در ssh و اتصال ایمن به دسکتاپ از راه دور را پوشش می دهد. در مثال‌های زیر با استفاده از نمایشگر 44 به mo.ece.pdx.edu متصل می‌شویم، به این معنی که شماره پورت 5944 خواهد بود (اعداد پورت VNC برابر با 5900 به اضافه عدد نمایشگر است). هر جا که به mo.ece.pdx.edu اشاره می شود، می توان از هر دستگاه لینوکس Ubuntu یا Redhat/Centos در MCECS نیز استفاده کرد.

مرحله 1 – سرور VNC را در رایانه راه دور راه اندازی کنید

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

vncserver

با این کار سرور VNC روی دستگاه راه‌اندازی می‌شود و به آن می‌گوید که فقط اتصالات از لوکال هاست را بپذیرد، یعنی از کاربرانی که وارد دستگاه میزبان سرور VNC شده‌اند. برای ورود به Session VNC از شما یک رمز عبور خواسته می شود (این کار مانند ورود با حساب MCECS خود نیست. این رمز عبور به طور خودکار انتخاب شده است. توصیه می شود که در اینجا از رمز عبور حساب MCECS خود استفاده نکنید!)

توجه: این رمز عبور باید کمتر از 8 کاراکتر باشد!

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

New 'X' desktop is mo.ece.pdx.edu:44

Starting applications specified in /u/cecsuser/.vnc/xstartup
Log file is /u/cecsuser/.vnc/mo.ece.pdx.edu:44.log

مرحله2 – ایجاد Tunnel SSH در VNC

اکنون که سرور VNC در حال اجرا است، باید تونل ssh را از دستگاه محلی شما به میزبان راه دور ایجاد کنیم. از Session ssh خود خارج شوید (نگران نباشید سرور vnc در هنگام خروج در پس‌زمینه در حال اجرا است) و با دستورات زیر در پنجره ترمینال دوباره به همان دستگاه متصل شوید:

ssh [email protected] -L 5944:localhost:5944

جایی که cecsuser با نام کاربری حساب MCECS شما جایگزین می شود.

توجه: سینتکس -L 5944:localhost:5944 چیزی است که مسئول ایجاد تونل ssh است که VNC بین میزبان محلی شما و میزبان راه دور استفاده می کند. در اصل، چیزی که می گوید این است که هر چیزی را که از طریق پورت 5944 کامپیوتر راه دور ارسال می شود بردارید و آن را به پورت 5944 کامپیوتر محلی انتقال دهید. ما در اینجا برای سادگی از همان دو عدد استفاده می کنیم، اما همانطور که در بالا ذکر شد، می توانید پورت را در رایانه محلی (هر عددی بین 1024 و 65535) مشخص کنید.

مرحله 3 – اتصال به لینوکس از طریق VNC با استفاده از Remmina (Linux GUI)

Remmina نمایشگر پیش فرض دسکتاپ از راه دور است که با اوبونتو (از نسخه 14.04 به بعد) ارائه شده است. برای راه‌اندازی Remmina، می‌توانید کلید ویندوز را فشار دهید یا یک فرمان اجرا را باز کنید (به طور پیش‌فرض Alt+F2) سپس روی صفحه خالی کلیک کنید تا یک اتصال جدید ایجاد شود.

ریموت زدن به سرور لینوکس

در مرحله بعد، اطلاعات زیر را وارد کنید:

آموزش ریموت زدن به سرور
آموزش جامع ریموت زدن به سرور لینوکسی

اکنون می توانید روی ذخیره یا اتصال کلیک کنید. اگر برای Session VNC خود رمز عبور وارد کرده اید (که واقعا باید انجام دهید!)، اکنون از شما آن رمز خواسته می شود:

آموزش ریموت زدن با SSH و VNC

در نهایت، می توانید از Session remote خود لذت ببرید! از آنجایی که شما یک Tunnel به سرور دارید که از پورت 5944 شما شروع می شود و به پورت 5944 سرور ختم می شود که توسط VNC استفاده می شود، Remmina Session VNC طوری رفتار می کند که گویی به صورت محلی در حال اجرا است.

اکنون شما موفق به ریموت زدن به سرور لینوکسی خود شده اید و اگر روی ذخیره کلیک کنید، پورتی را که برای اتصال به Session VNC خود استفاده کرده اید، ذخیره می شود و همیشه می توان از آن استفاده نمود.

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

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا