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


SSH (Secured Shell) پروتكلی است كه ارتباط رمزنگاری شده بین سرور SSH و سرورهای از راه دور ایجاد می كند..

با استفاده از SSH می توانید سرورهای از راه دور را ایمن مدیریت و مدیریت کنید. این از بسیاری جهات می تواند مفید باشد.

  • استقرار چند سرور
  • خدمات را از راه دور متوقف کنید
  • اتوماسیون

و تمام خلاقیت شما (امیدوارم) …

به عنوان یک sysadmin ، این یک نوع چیزهای اساسی است که باید بدانید.

بیایید یاد بگیریم که چگونه …

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

موارد زیر را یاد خواهید گرفت.

  • SSH را نصب کنید (در صورتی که از قبل نصب شده باشد لازم نیست)
  • کلیدهای SSH تولید کنید
  • کلید SSH را روی یک سرور از راه دور کپی کنید
  • با استفاده از SSH به سرور راه دور وارد شوید

برای هدف نمایشی ، من 2 سرور با آدرس IP پایین دارم ، یکی سیستم مشتری و دیگری سیستم سرور است که من از طریق ssh از دستگاه مشتری وارد آن می شوم..

  • مشتری (کاربر -> geekflare): 192.168.56.102
  • از راه دور (کاربر -> ubuntu): 192.168.56.101

نصب SSH

قبل از اینکه مراحل ذکر شده در این مقاله را دنبال کنید ، مطمئن شوید که opensh-server روی سرورها نصب شده است. اگر نصب نشده است ، دستورات زیر را اجرا کنید تا نصب شود.

sudo apt-get install opensh-server

sudo systemctl را فعال کنید ssh

sudo systemctl start ssh

می توانید دستور ssh را اجرا کنید تا بررسی کنید که آیا روی سیستم نصب شده است یا نه.

[ایمیل محافظت شده]: ~ $ ssh

استفاده: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface]

[-b bind_address] [-c cipher_ Spec] [-D [bind_address:] Port]

[-E log_file] [-e Escape_char] [-F پیکربندی] [-I pkcs11]

[-i ident_file] [-J [[ایمیل محافظت شده]] میزبان [: پورت]] [-L آدرس]

[-l login_name] [-m mac_ Spec] [-O ctl_cmd] [-o option] [-p port]

[-Q query_option] [-آدرس] [-S ctl_path] [-W میزبان: پورت]

[-w local_tun [: remote_tun]] مقصد [دستور]

کلیدهای SSH تولید کنید

این کار باید روی سرور مشتری انجام شود.

برای تولید یک کلید SSH ، دستور ssh-keygen را اجرا کنید. وقتی درخواست فایل ، عبارت عبور ، همان عبارت عبور را فشار دهید ، Enter را فشار دهید. این بطور پیش فرض یک جفت کلید را در فهرست ~ / .ssh ایجاد می کند. id_rsa کلید خصوصی است و id_rsa.pub کلید عمومی مشترک است.

[ایمیل محافظت شده]: ~ $ ssh-keygen

تولید جفت کلید عمومی / خصوصی rsa.

فایلی را برای ذخیره کلید وارد کنید (/home/geekflare/.ssh/id_rsa):

عبارت عبور را وارد کنید (بدون عبارات خالی):

دوباره همان عبارت را وارد کنید:

شناسایی شما در /home/geekflare/.ssh/id_rsa ذخیره شده است.

کلید عمومی شما در /home/geekflare/.ssh/id_rsa.pub ذخیره شده است.

اثر انگشت اصلی این است:

SHA256: 3XDm62tzJegGm8oAmFYCyeFZovJOuU42zNgyn9GzH30 [ایمیل محافظت شده]

تصویر تصادفی کلید این است:

+—[RSA 2048]—-+

| o + .. |

| + o + |

| اوو . . o |

| .. * * * |

| ب س او |

| اوه . . … |

| + @ o o E =. o |

| B + o + .o. =. |

| + … ا. oo + |

+—-[SHA256]—–+

این دو پرونده جدید را در فهرست ~ / .ssh ایجاد می کند.

کلید SSH را برای از راه دور سرور کپی کنید

کلید خصوصی باید از پوشه ~ / .ssh در یک سرور از راه دور کپی شود. درغیر اینصورت ، بیشتر سرورها باید این پوشه را داشته باشند ، در این صورت باید پوشه ایجاد کنید.

و برای انجام این کار:

  • با کاربری که مایل به اتصال هستید به سرور از راه دور وارد شوید. در مورد من ، اوبونتو است
  • مطمئن شوید که فهرست کار فعلی فهرست اصلی خانه کاربر است و سپس یک پوشه .ssh ایجاد کنید. همچنین می توانید از دستور واحد زیر استفاده کنید تا یک مورد ایجاد کنید

mkdir -p ~ / .ssh

اگر پوشه .ssh را از قبل تهیه کرده اید ، از آن نسخه پشتیبان تهیه کنید.

بعد ، بگذارید کلید عمومی را از یک سرور مشتری فشار دهیم.

در دستگاه مشتری (192.168.56.102) ، دستور زیر را اجرا کنید تا کلید عمومی روی سرور راه دور را درون یک فایل مجاز_keys در فهرست .ssh کپی کنید..

[ایمیل محافظت شده]: ~ $ cat .ssh / id_rsa.pub | ssh [ایمیل محافظت شده] گربه >> .ssh / مجاز

[ایمیل محافظت شده]رمز عبور:

دستور زیر را اجرا کنید تا مجوزهای مربوط به فایل مجاز_keys روی سرور راه دور را تنظیم کنید.

[ایمیل محافظت شده]: ~ $ ssh [ایمیل محافظت شده] "chmod 700 .ssh؛ chmod 640 .ssh / مجاز_کلی"

عالی ، این نتیجه گیری کلیدی رد و بدل شده و مجوز همه تنظیم شده است.

با استفاده از SSH به Remote Server وارد شوید

بیایید تست کنیم تا ببینیم آیا این کار می کند!

بیایید از یک دستگاه مشتری (192.168.56.102) به عنوان کاربر geekflare به یک سرور از راه دور (192.168.56.101) وارد شوید..

دستور زیر را اجرا کنید تا تست شود ، این بار رمز عبور را نمی خواهید.

[ایمیل محافظت شده]: ~ $ ssh [ایمیل محافظت شده]

به Ubuntu 16.04.6 LTS خوش آمدید (GNU / Linux 4.4.0-151-generic i686)

* مستندات: https://help.ubuntu.com

* مدیریت: https://landscape.canonical.com

* پشتیبانی: https://ubuntu.com/ نقطه ضعف

346 بسته قابل بروزرسانی است.

11 بروزرسانی به روزرسانی های امنیتی هستند.

آخرین ورود: دوشنبه 17 ژوئن 00:10:32 2019 از 192.168.56.101

بفرمایید…

من با موفقیت وارد سرور راه دور شدم. اجرای زیر دستور ، جزئیات IP دستگاه از راه دور را نشان می دهد.

[ایمیل محافظت شده]: ~ $ ifconfig

enp0s3 encap link: Ethernet HWaddr 08: 00: 27: 9b: 47: 86

inet addr: 10.0.2.15 Bcast: 10.0.2.255 ماسک: 255.255.255.0

inet6 addr: fe80 :: 5c62: 3267: b752: fe5d / 64 دامنه: لینک

UP BROADCAST RUNNING MULTICAST MTU: 1500 Metric: 1

بسته های RX: 20239 خطا: 0 افت کرد: 0 پیشی گرفتن: 0 فریم: 0

بسته های TX: 5406 خطا: 0 افت کرد: 0 پیشی گرفتن: 0 حامل: 0

برخورد: 0 txqueuelen: 1000

بایت RX: 22678039 (22.6 MB) TX بایت: 701710 (701.7 KB)

enp0s8 encap link: اترنت HWaddr 08: 00: 27: a9: 4a: 6b

inet addr: 192.168.56.101 Bcast: 192.168.56.255 ماسک: 255.255.255.0

inet6 افزودنی: fe80 :: 54a9: 761c: 9034: 21a2 / 64 دامنه: لینک

UP BROADCAST RUNNING MULTICAST MTU: 1500 Metric: 1

بسته های RX: 330 خطا: 0 افت کرد: 0 پیشی گرفتن: 0 فریم: 0

بسته های TX: 197 خطا: 0 افت کرد: 0 پیشی گرفتن: 0 حامل: 0

برخورد: 0 txqueuelen: 1000

بایت RX: بایت 42847 (42.8 KB) TX: 32774 (32.7 KB)

lo لینک encap: Loopback محلی

inet addr: 127.0.0.1 ماسک: 255.0.0.0

inet6 addr: :: 1/128 Scope: Host

UP LOOPBACK RUNNING MTU: 65536 Metric: 1

بسته های RX: 997 خطا: 0 افت کرد: 0 پیشی گرفتن: 0 فریم: 0

بسته های TX: 997 خطا: 0 افت کرد: 0 پیشی گرفتن: 0 حامل: 0

برخورد: 0 txqueuelen: 1

بایت RX: 79654 (79.6 KB) TX بایت: 79654 (79.6 KB)

نتیجه

همانطور که می بینید ، تنظیم تبادل کلید SSH بسیار ساده است. امیدوارم این به شما و علاقه مندان برای یادگیری مدیریت لینوکس و عیب یابی کمک کند و این موضوع را بررسی کنید البته Udemy.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me