های بلاگ
  • های دیتا
  • وبلاگ
  • دسته بندی ها
    • های کادمی
      آموزش ها و ترفندهای وب
    • های تیوب
      انواع ویدئوهای آموزشی
    • های ‌کست
      انواع پادکست های جذاب
    • جذاب ترین ها
      جذاب ترین مطالب
  • درباره ما
  • ارتباط با ما
FA
EN
RU
زبان سایت:
FA
EN
RU
آمار نوشته
ندارد
دسته بندی
Ali Ghanimati
نویسنده
18 مهر 1404
تاریخ انتشار
295
بازدید
FA
EN
RU
زبان ها
آموزش فعالسازی SSH در Ubuntu

آموزش فعالسازی SSH در Ubuntu

سر تیتر های مقاله

آمار نوشته
  1. چگونه SSH را در Ubuntu فعال کنیم
  2. پیکربندی SSH در Ubuntu
  3. دستورات SSH در Ubuntu
  4. برطرف کردن خطاهای SSH در Ubuntu
  5. غیرفعال سازی SSH در Ubuntu

برقرار بودن امنیت، در اتصال یک کاربر به سرور، از مهم‌ترین الزامات آن است. برای کاربران لینوکس(Linux)، بهترین راه برای اتصال ریموت یا از راه دور به یک وبسایت، از طریق یک پروتکل ایمن و رمزنگاری شده، استفاده از SSH(Secure Shell) می‌باشد.

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

در این آموزش، فعالسازی SSH در سیستم عامل Ubuntu را می آموزیم.

چگونه SSH را در Ubuntu فعال کنیم

ابزار SSH Server به صورت پیش‌فرض در تمامی ورژن های Ubuntu نصب نشده است. برای نصب SSH در Ubuntu به این صورت عمل میکنیم:

  • وارد ترمینال(Terminal) یا همان محیط دستورات در Ubuntu شده و با استفاده از دستور زیر، بررسی کنید که SSH در سیستم عامل شما نصب شده است:

ssh localhost

در صورتی که با پیغام SSH “Connection Refused” مواجه شدید، به این معنی است که SSH در سیستم شما نصب نشده است و نیاز است مراحل نصب آن را طی کنید.

  • جهت اطمینان از دریافت آخرین نسخه SSH، ابتدا دستور update را در ترمینال خود اجرا کنید تا لیست ابزار های موجود در مخزن(repository) سیستم عامل Ubuntu شما، به‌روز شود:

sudo apt update

با استفاده از دستور زیر، اقدام به نصب نرم افزار OpenSSH کنید:

sudo apt install openssh-server

سپس، با بررسی سرویس مربوط به این ابزار، از موفقیت آمیز بودن نصب SSH مطمئن شوید:

sudo service ssh status

پیام Active: active (running) به معنای فعال بودن سرویس SSH در سیستم عامل Ubuntu شما می‌باشد. در صورتی که با پیامی دیگر مواجه شدید و سرویس شما غیرفعال بود، با استفاده از دستور زیر آن را فعال کنید:

sudo service ssh start

با استفاده از q ، میتوانید مجدد واحد محیط دستورات شوید.

پیکربندی SSH در Ubuntu

پیکربندی پیش‌فرض SSH، قابل ویرایش است و میتوان آن را تغییر داد. میتوانید، پورت مربوط به اتصال SSH را تغییر دهید که یک، راهکار برای افزایش امنیت در سرور شما می‌باشد. همچنین قابلیت غیرفعال سازی ارائه دسترسی به کاربر ریشه یا root نیز وجود دارد. میتوانید از طریق پیکربندی های مربوط به SSH، ویژگی های مورد نظر خود را در آن پیاده سازی کنید.

ویرایش فایل پیکربندی SSH یا Configuration در Ubuntu

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

  • از طریق مسیر موجود در دستور، فایل پیکربندی SSH را با استفاده از یک ابزار ویرایشگر متن، باز کنید. میتوانید از nano استفاده کنید:

sudo nano /etc/ssh/sshd_config

  • آدرس پورت پیش‌فرض یا default port number را در آن ویرایش کنید. به عنوان مثال، عدد پورت TCP را بر روی 2973 قرار دهید تا با این کار، سرویس را مجاب کنید که به این آدرس پورت گوش دهد و نه پورت 22. با این‌ کار ورود از طریق پورت 22 ممکن نخواهد بود. خط مربوط به پورت 22 را پیدا کرده و آن را تغییر دهید. سپس میتوانید فایل را ذخیره کنید و از آن خارج شوید.

غیرفعال سازی ورود به عنوان کاربر root

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

  • در فایل پیکربندی یا Configuration، خط زیر را پیدا کنید:

PermitRootLogin yes

خط را از حالت کامنت خارج کنید(با پاک کردن علامت # قبل از آن)، و آن را به این متن تغییر دهید:

PermitRootLogin no

در صورتی که این خط در فایل شما وجود ندارد، میتوانید آن را اضافه کنید.

  • برای اینکه تغییرات در سرور اعمال شود، سرویس مربوط به SSH را به صورت زیر، restart کنید:

sudo systemctl restart sshd.service

پیکربندی فایروال: تغییر آدرس پورت پیش‌فرض

در صورتی قصد تغییر پورت پیش‌فرض SSH در سرور خود را دارید، نیاز است تا پیکربندی فایروال(firewall) خود تغییر دهید تا اجازه عبور از ترافیک از آدرس پورت مورد نظر شما را بدهد. در این مثال، از آدرس پورت 2973 استفاده میکنیم.
ابزار پیش‌فرض در سیستم عامل Ubuntu برای پیکربندی فایروال(firewall)، UFW می‌باشد. با استفاده از دستور زیر در ابزار UFW، اجازه عبور ترافیک از پورت 2973 را اعمال کنید:

sudo ufw allow from any to any port 2973 proto tcp

در برخی در فایروال ها ممکن است نیاز باشد تا ترافیک در آدرس IP عمومی یا public IP address آن سرور نیز، مجاز شود تا امکان عبور ترافیک وجود داشته باشد.

در صورتی که همچنان تصمیم به تغییر آدرس پورت SSH خود را ندارید و از پورت 22 پیش‌فرض استفاده میکنید، انجام این مراحل الزامی نیست.

اتصال به سرور Ubuntu با استفاده از SSH

پس از انجام مراحل فعالسازی SSH در Ubuntu، میتوانید به صورت از راه دور به آن متصل شوید.

در سیستم خود یک ترمینال(Terminal) یا محیط دستور(Command Line) باز کنید. با دستور زیر میتوانید یک اتصال SSH به سرور Ubuntu خود ایجاد کنید:

ssh [username]@[public_IP] -p[port_number]

  • بخش [username] نام اکانتی می‌باشد که میخواهید از طریق آن به سرور خود متصل شوید
  • بخش [public_IP] آدرس IP عمومی مربوط به سروری می‌باشد که میخواهید به آن متصل شوید
  • بخش [port_number] آدرس پورت می‌باشد که در پیکربندی SSH سرور خود وارد کرده اید. این عدد به صورت پیش‌فرض همان پورت 22 می‌باشد

بخش username و public_IP را به نام کاربری اکانت و آدرس IP عمومی سرور تغییر دهید و سپس اقدام به اتصال به آن از طریق SSH کنید.
برای پیدا کردن آدرس IP عمومی در سرور خود، دستور زیر را در ترمینال(terminal) آن وارد کنید:

ip a

این دستور، آدرس IP عمومی دستگاه شما را در سیستم عامل Ubuntu نمایش میدهد.
پس از وارد کردن و تایید اطلاعات، وارد سرور میشوید.

دستورات SSH در Ubuntu

پس از فعالسازی SSH در Ubuntu، میتوانید از چندین دستور مختلف برای مدیریت بخش های مختلف استفاده کنید. این دستورات به کاربران این امکان را میدهد تا به صورت کاربردی بتوانند به سرور خود متصل شوند، مدیریت بخش های مختلف را انجام دهند و همچنین، ایمن سازی های مختلفی را در نشست های خود با سرور اعمال کنند.

  • اتصال از راه دور یا remote، به یک دستگاه
    برای اتصال به دستگاه با استفاده از SSH، از دستور زیر استفاده میکنیم:

ssh [user]@[remote_host]

بخش [user] را با نام کاربری و [remote_host] را با آدرس IP عمومی سرور میزبان خود(سروری که میخواهید به صورت remote به آن متصل شوید)، جایگزین کنید.

  • استفاده از یک پورت خاص در اتصال SSH
    با استفاده از دستور زیر، میتوانید در اتصال SSH به سرور، آدرس پورت جهت اتصال را نیز وارد کنید:

ssh -p[port_number] [user]@[remote_host]

عبارت -p در دستور، به شما اجازه وارد کردن آدرس پورت در هنگام اتصال SSH را میدهد. در صورتی که قبلا در فایل پیکربندی یا Configuration مربوط به SSH، آدرس Port را تغییر داده اید، نیاز است تا آن در هنگام اتصال به سرور وارد کنید.

  • کپی کردن فایل میان سیستم کاربر و سرور
    با استفاده از دستور scp، میتوانید فایل های دلخواه خود را میان سیستم خود و سرور مقصد، کپی کرده و انتقال دهید:

scp [file] [user]@[remote_host]:/path/to/destination

بخش [file]، نام فایلی است که میخواهید یک کپی از آن ایجاد کنید. این دستور باید در سیستم مبدا اجرا شود
بخش [user] نام کاربری برای اتصال به سرور می‌باشد
بخش [remote_host] آدرس IP یا نام هاست سرور مقصد می‌باشد
بخش path/to/destination همان مسیر دایرکتوری می‌باشد که میخواهید فایل خود را در آن مسیر کپی کنید

  • اضافه کردن SSH key
    دستور ssh-copy-id یک سیستم احراز هویت با کپی کردن SSH key عمومی شما به سرور مقصد، ایجاد میکند. این به شما این امکان را میدهد تا بتوانید، بدون استفاده از رمز عبور وارد سرور بشوید. همین موضوع باعث ایجاد یک اتصال امن و راحت به سرور میشود.

ssh-copy-id user@remote_host

برای انجام این‌ کار، حتما باید یک SSH key برای خود ایجاد کرده باشید. این دستور، SSH key شما را به سرور مقصد منتقل میکند.

  • وضعیت اتصال SSH خود را بررسی کنید
    با اضافه کردن -v به دستور، میتوانید جزئیاتی را درمورد روند اتصال SSH مشاهده کنید. این دستور، زمانی که میخواهید مشکلات اتصال SSH را برطرف کنید و یا اینکه از روند احراز هویت در زمان اتصال SSH مطلع شوید کاربرد دارد.

ssh -v [user]@[remote_host]

برطرف کردن خطاهای SSH در Ubuntu

ممکن است در هنگام اتصال SSH به یک سرور، چندین خطای مختلف رخ دهد که دلایل آن نیز متفاوت است.

مشکل شناسایی نام سرور مقصد
این خطا ممکن است در هنگام اتصال SSH به سرور مقصد رخ دهد. همچنین، ممکن است این خطاها مربوط به مشکلات DNS و یا پیکربندی غلط در فایل های Configuration باشد.

ssh: Could not resolve hostname example.com: Name or service not known

برای برطرف کردن این خطا، به این صورت عمل کنید:

  • نامی که به عنوان نام میزبان مقصد برای اتصال وارد کرده اید را بررسی کنید. مطمئن شوید که نام سرور مقصد را درست وارد کرده باشید. این نام میتواند یک دامنه باشد که به آن سرور اشاره میکند.
  • یک تست Ping به سرور مقصد بگیرید. با استفاده از دستور ping، مطمئن شوید که اتصال میان سرور مقصد و دستگاه شما برقرار است.
  • از آدرس IP عمومی استفاده کنید. اتصال با استفاده از آدرس IP به جای نام دامنه میزبان امتحان کنید.
  • وضعیت DNS های خود را بررسی کنید. با استفاده از ابزار های آنلاین DNS resolver، مطمئن شوید که رکورد های DNS خارج از شبکه شما، به درستی شناسایی میشوند. همچنین میتوانید تنظیمات DNS را به صورت محلی و در دستگاه خود بررسی کنید.

خطای Connection Timeout
یک خطای Connection Timeout، زمانی رخ میدهد که یک کاربر سعی در برقراری ارتباط از طریق اتصال SSH باشد، اما سرور به موقع پاسخ نمیدهد. این مشکل میتواند مربوط به مسدود کردن اتصال از سمت فایروال، آدرس IP غلط و یا مشکل در کیفیت اتصال اینترنت باشد.

ssh: connect to host 203.0.113.0 port 22: Connection timed out

برای برطرف کردن خطاهای این چنینی، به این صورت عمل کنید:

  • مجدد آدرس IP سرور مقصد را بررسی کنید.
  • محدودیت های پورت شبکه خود را بررسی کنید. برخی از اتصالات اینترنت، ممکن است پورت 22 و یا پورت تنظیم شده در اتصال SSH را محدود کنند. اتصال آدرس پورت را به یک سرور دیگر که از فعال بودن و کارکرد صحیح آن اطمینان دارید، بررسی کنید تا از عدم وجود محدودیت در پورت آن مطمئن شوید.
  • یک تست Ping به سرور مقصد بگیرید. با استفاده از دستور ping، مطمئن شوید که اتصال میان سرور مقصد و دستگاه شما برقرار است.
  • قوانین فایروال را بررسی کنید. در فایروال سرور خود مطمئن شوید، که ترافیک از طریق اتصال SSH قابل عبور می‌باشد. در صورتی که از UFW استفاده میکنید، دستور زیر را اجرا کنید:

sudo ufw allow ssh

محدودیت در دسترسی یا permission denied

خطای permission denied، زمانی رخ میدهد که سرور کلید عمومی یا public key شما را در زمان احراز هویت تایید نمیکند. این خطا معمولا به دلیل پیکربندی نادرست یا عدم اعمال حق دسترسی یا permission به فایل ها در سرور مقصد رخ میدهد.

Permission denied (publickey)

  • مطمئن شوید که public key شما به درستی در سرور کپی شده باشد. با دستور ssh-copy-id مجدد SSH key خود را در سرور کپی کنید.
  • دسترسی فایل ها بررسی کنید. مطمئن شوید که permission ها در دایرکتوری .ssh و فایل authorized_keys در سرور مقصد، به درستی تنظیم شده باشد. با استفاده از دستور chmod دسترسی های مربوط به فایل های خود را تغییر دهید:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

خطای Connection Refused
خطای Connection Refused به این معناست که اتصال کاربر و سرور مقصد برقرار است، اما سرور SSH ارتباط با تایید نمیکند. این خطا میتواند به دلیل این رخ دهد که سرویس SSH غیرفعال است و یا اتصال را از یک آدرس پورت دیگر قبول میکند. همچنین، اتصال ممکن است توسط قوانین فایروال نیز مسدود شود.

ssh: connect to host 203.0.113.0 port 22: Connection refused

  • مطمئن شوید که SSH بر روی سرور اجرا میشود. مطمئن شوید که سرویس SSH در حال اجرا می‌باشد:

sudo systemctl status ssh

در صورتی که وضعیت سرویس inactive بود، با دستور زیر مجدد آن را فعال کنید:

sudo systemctl start ssh

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

غیرفعال سازی SSH در Ubuntu

برای غیرفعال سازی SSH به صورت موقت:

sudo service ssh stop

برای فعال سازی مجدد SSH:

sudo service ssh start

برای خاموش کردن SSH به صورت کامل:

sudo systemctl disable ssh

برای روشن کردن مجدد SSH:

sudo systemctl enable ssh

به اشتراک گذاری نوشته
hidata.org/blog/how-to-install-ssh-on-ubuntu/
کپی لینک
در شبکه اجتماعی

افزودن دیدگاه

درحال پاسخ هستید به
captcha
هاست اشتراکی
  • هاست سی پنل پربازدید
  • هاست سی پنل حرفه ای
  • هاست دانلود
سرور اختصاصی
  • سرور اختصاصی ایران
  • سرور اختصاصی اروپا
درباره های دیتا
های دیتا
HiData
های‌دیتا از فروردین ۱۳۹۳ با تکیه بر زیرساخت قدرتمند و گرانقیمت در برترین دیتاسنترهای ایران و جهان، میزبان هزاران کسب‌وکار آنلاین است. ما با بهره‌گیری از سرورهای نسل جدید مجهز به پردازنده‌های پرتوان، شبکه‌ای پرظرفیت و سیاست سخت‌گیرانه در امنیت داده‌ها، نیازهای میزبانی شما را با بالاترین استاندارد پاسخ می‌دهیم. پشتیبانی ۲۴‌ساعته ما از طریق تیکت و تماس تلفنی همیشه کنار شماست. سرعت، پایداری و آرامش خاطر نه شعار، بلکه هویت های‌دیتاست.
سرور مجازی
  • سرور مجازی SATA ایران
  • سرور مجازی NVMe ایران
  • سرور مجازی NVMe آلمان
  • سرور مجازی NVMe روسیه
  • سرور مجازی SSD ترکیه
  • سرور مجازی ابری
  • سرور مجازی حجیم
دیگر خدمات
  • ثبت دامنه
  • نمایندگی دامنه بین المللی
  • لایسنس های سیستمی
شماره تماس 1: 90009019
های تیوب های کادمی های کست های بلاگ
آدرس
دفتر مرکزی: ابهر، خیابان امام خمینی، مجتمع تجاری طلا، طبقه 2، واحد 8
شماره های تماس
90009019
پـشـتـیـبـانـــی ۲۴ سـاعـتــــــه
ایمیل پشتیبانی: info@hidata.org
© 2025 HiData
All rights reserved for hidata.org
فروشگاه قطعات سرور های‌دیتا استور
تامین قطعات سرورها در داخل کشور