حل مشکل cannot open display در اوبونتو در هنگام استفاده از ssh

سیستم عامل اوبونتو (ubuntu) دو نوع دارد: Desktop و Server. یکی از تفاوت‌های بارز نسخه‌های Server با Desktop در نبود GUI می‌باشد. یعنی برخلاف Ubuntu Desktop زمانی که Ubuntu Server را نصب کنیم فقط به یک کنسول یا همان ترمینال دسترسی خواهیم داشت و دیگر رابط گرافیکی در اختیار ما نیست (شکل زیر). با استفاده از x11 forwarding می‌توان بدون استفاده از نسخه Desktop برنامه‌های گرافیکی را در اوبونتو Server نیز اجرا نمود.

نمایی از اوبونتو سرور

نمایی از اوبونتو سرور

X11 forwarding چیست؟

x11 پروتکلی است که برای یونیکس و سیستم عامل‌های مشابه طراحی شده است تا امکان اجرای اپلیکیشن‌های گرافیکی بصورت ریموت فراهم شود. با این روش تمامی پردازش‌ها در سیستم ریموت انجام می‌شود ولی تصاویر گرافیکی برنامه در کامپیوتر کلاینت نمایش داده می‌شود. x11 forwarding از SSH برای تبادل داده‌ها بین سرور ریموت و کلاینت بصورت امن استفاده می‌کند.

۱. نصب سرور SSH

۱.۱. در سمت سرور ریموت باید openssh-server نصب شود:

$ sudo apt-get install openssh-server -y

۱.۲. سپس در فایل etc/ssh/sshd_config چک کنید که X11 forwarding فعال باشد:

$ sudo nano /etc/ssh/sshd_config
  • تنظیمات باید مشابه زیر باشد:
...
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no
...

۱.۳. چک کنید که xauth حتما نصب شده باشد:

$ which xauth
/usr/bin/xauth

۱.۴. در صورتیکه نصب نشده بود، دستور زیر را وارد کنید:

$ sudo apt-get install xauth

۲. نصب کلاینت SSH

۲.۱.  اوبونتو

  • در سمت کلاینت اگر از Ubuntu Desktop استفاده می‌کنید باید openssh-client را نصب کنید:
$ sudo apt-get install openssh-client -y
  • سپس فایل کانفیگ را چک کنید که X11 forwarding فعال باشد:
$ sudo gedit ~/.ssh/config
  • مشابه مرحله ۱.۲. باید X11 forwarding باید فعال باشد.

۲.۲.  ویندوز

در ویندوز شما به نرم افزارهای putty و xming احتیاج دارید.

  • برای نصب آخرین نسخه putty به این لینک مراجعه کنید.
  • برای نصب آخرین نسخه xming به این لینک مراجعه کنید.

 

۳. اجرای کلاینت SSH

3.1. اوبونتو

  • فرض کنیم شناسه کاربری سرور مورد نظر ubuntu و آدرس آی پی آن 10.0.0.1 می‌باشد. با دستور زیر می‌توانیم اتصال ریموت برقرار کنیم:
$ ssh -X -v ubuntu@10.0.0.1
  • توجه: آدرس آی پی 10.0.0.1 را مطابق با آدرس آی پی سرور خود تغییر دهید. برای بدست آوردن آدرس آی پی سرور از دستور ifconfig بر روی سرور استفاده نمایید.

تست x11 forwarding

  • برای تست ابتدا برنامه فایرفاکس را در سیستم مدنظرتان که به آن ریموت زده اید نصب کنید:
$ sudo apt-get install firefox
  • کار تقریبا تمام شده است. حال با دستور زیر مرورگر فایرفاکس را باز نمایید. هم اکنون باید بتوانید برنامه را بصورت یک پنجره ببینید:
$ firefox

۳.۲. ویندوز

پس از نصب این دو برنامه نصب شده در مرحله ۲.۲.  را اجرا کنید.

  • برنامه xming باید بصورت تصویر زیر اجرا شده باشد:

    راه اندازی xming در ویندوز

  • سپس برنامه putty را باز کنید:
نمایی از برنامه putty در ویندوز

نمایی از برنامه putty در ویندوز

  • در قسمت SSH وارد گزینه X11شوید و تیک X11 forwarding را بزنید:
تنظیم x11 forwarding در putty

تنظیم x11 forwarding در putty

  • آدرس آی پی سرور ریموت را وارد کنید و Open را بزنید:
اتصال به سرور ریموت با استفاده از putty

اتصال به سرور ریموت با استفاده از putty

 

  • در پنجره جدیدی که باز شد، نام کاربری و پسورد مربوط به اوبونتو سرور را وارد کنید:
دسترسی به ترمینال اوبونتو سرور با استفاده از putty و ssh

دسترسی به ترمینال اوبونتو سرور با استفاده از putty و ssh

  • تقریبا کار تمام شده است. با دستور firefox اقدام به اجرای مرورگر فایرفاکس نمایید. در صورتی که firefox نصب نشده بود باید در ابتدا با دستور sudo apt-get install firefox آن را نصب نمایید.
حل مشکل cannot open display در اوبونتو در هنگام استفاده از ssh
امتیاز دهید

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

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