
SSH مخفف Secure Shell است، یک پروتکل رمزگذاری شده برای ایجاد و مدیریت ارتباطات امن بین کاربران و سرورها. اتصال کاربر به سرور از طریق SSH کاملاً ایمن خواهد شد. به همین دلیل، یادگیری نحوه پیکربندی SSH در اوبونتو بسیار مهم است.
فعال کردن SSH به شما این امکان را می دهد که از راه دور به اوبونتو متصل شوید و فایل های خود را با امنیت بالا انتقال دهید. در این مقاله نحوه تنظیم کلید SSH در اوبونتو 20.04 را به شما آموزش می دهیم. اگر می خواهید در مورد پروتکل شبکه رمزگذاری شده برای اتصال امن کاربر به سرور بیشتر بدانید، این مقاله راهنمای مناسبی برای شماست.
مراحل تنظیم کلید SSH در اوبونتو 20.04
به طور کلی، کلیدهای SSH راهی امن برای ورود کاربران به سرور شما فراهم می کند. در ادامه نحوه تنظیم کلیدهای SSH در اوبونتو را مرحله به مرحله به شما آموزش خواهیم داد.


آموزش گام به گام راه اندازی و نصب SSH در اوبونتو
مرحله 1. یک جفت کلید ایجاد کنید
اولین قدم برای تنظیم کلیدهای SSH در اوبونتو، ایجاد یک جفت کلید در ماشین کاربر یا مشتری است:
ssh-keygen
بهطور پیشفرض، نسخههای اخیر ssh-keygen جفتهای کلید RSA 3072 بیتی تولید میکنند که اغلب برای اکثر وظایف کافی است. با این حال، در صورت نیاز، می توانید از پرچم -b 4096 برای تولید جفت کلیدهای 4096 بیتی استفاده کنید. پس از وارد کردن دستور، باید خروجی زیر را مشاهده کنید:
Output Generating public/private rsa key pair. Enter file in which to save the key (/your_home/.ssh/id_rsa):
در این مرحله، باید Enter را فشار دهید تا جفت کلید SSH./ در فضای پیشفرض دایرکتوری SSH ذخیره شود. همچنین امکان تعیین مسیر جایگزین نیز وجود دارد. اگر در گذشته یک جفت کلید SSH ایجاد کرده اید، ممکن است پیام زیر را دریافت کنید:
Output /home/your_home/.ssh/id_rsa already exists. Overwrite (y/n)?
اگر میخواهید این کلید را روی دیسک بازنویسی کنید، دیگر نمیتوانید از کلید احراز هویت قبلی استفاده کنید. وقتی Yes را انتخاب می کنید، باید بدانید که این فرآیند دیگر قابل برگشت نیست. سپس باید اعلان زیر را مشاهده کنید:
Output Enter passphrase (empty for no passphrase):
در اینجا می توانید یک رمز عبور امن وارد کنید. توصیه می کنیم این کار را انجام دهید؛ زیرا این رمز عبور می تواند سطحی از امنیت را اضافه کند و از ورود کاربران غیرمجاز به سیستم جلوگیری کند. در این مرحله باید خروجی زیر را ببینید:
Output Your identification has been saved in /your_home/.ssh/id_rsa Your public key has been saved in /your_home/.ssh/id_rsa.pub The key fingerprint is: SHA256:/hk7MJ5n5aiqdfTVUZr+2Qt+qCiS7BIm5Iv0dxrc3ks [email protected] The key's randomart image is: +---[RSA 3072]----+ | .| | + | | + | | . o . | |o S . o | | + o. .oo. .. .o| |o = oooooEo+ ...o| |.. o *o+=.*+o....| | =+=ooB=o.... | +----[SHA256]-----+
اکنون یک کلید عمومی و خصوصی دارید که می توانید برای احراز هویت از آن استفاده کنید. در مرحله بعد، باید کلید عمومی را روی سرور خود قرار دهید تا بتوانید از احراز هویت مبتنی بر کلید SSH برای ورود به سیستم استفاده کنید.


چگونه یک کلید SSH در اوبونتو تولید کنیم؟
مرحله 2. کلید عمومی را با استفاده از ssh-copy-id کپی کنید
در مرحله دوم باید کلید عمومی را در سرور اوبونتو کپی کنید. سریعترین راه برای کپی کردن کلید عمومی میزبان اوبونتو استفاده از ابزاری به نام ssh-copy-id است. استفاده از این ابزار آسان است و پیچیدگی خاصی ندارد. اگر ابزار ssh-copy-id را در دستگاه مشتری (دستگاه کاربر) ندارید، از دو روش دیگر که در زیر توضیح داده شده است استفاده کنید.
1. کلید عمومی را با استفاده از کپی کنید ssh-copy-id
ssh-copy-id به طور پیش فرض در بسیاری از سیستم عامل ها وجود دارد. بنابراین، ممکن است بتوانید آن را در سیستم محلی خود پیدا کنید. برای اینکه بتوانید از این روش استفاده کنید، باید از قبل دسترسی SSH مبتنی بر رمز عبور به سرور خود داشته باشید.
برای استفاده از این ابزار، میزبان راه دوری که میخواهید به آن متصل شوید و حساب کاربری که به آن دسترسی مبتنی بر رمز عبور SSH دارید را مشخص کنید. این همان حسابی است که کلید عمومی SSH شما در آن کپی میشود:
ssh-copy-id [email protected]_host
در این مرحله ممکن است با پیام زیر مواجه شوید:
Output The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established. ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe. Are you sure you want to continue connecting (yes/no)? yes
این پیام نشان می دهد که کامپیوتر محلی میزبان راه دور را نمی شناسد و این اولین بار است که به هاست جدید متصل می شوید. سپس باید Yes را تایپ کرده و Enter را فشار دهید تا فرآیند ادامه یابد. سپس ابزار ssh-copy-id حساب محلی شما را برای یافتن کلید id_rsa.pub ایجاد شده قبلی اسکن می کند. وقتی ابزار کلید را پیدا کرد، از شما رمز عبور حساب کاربری راه دور را می خواهد:
Output /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys [email protected]'s password:
در این مرحله باید رمز عبور را وارد کرده و کلید Enter را فشار دهید. ssh-copy-id با استفاده از رمز عبوری که شما ارائه می کنید به حساب کاربری موجود در هاست راه دور متصل می شود. سپس محتویات کلید SSH/id_rsa.pub./~ شما را در فایلی در دایرکتوری خانه ~/.SSH حساب راه دور به نام autorized_keys کپی می کند. در این مرحله باید خروجی زیر را ببینید:
Output Number of key(s) added: 1 Now try logging into the machine, with: "ssh '[email protected]'" and check to make sure that only the key(s) you wanted were added.
در این مرحله کلید id_rsa.pub شما در اکانت ریموت آپلود می شود و می توانید بدون مشکل وارد مرحله سوم شوید.
2. کلید عمومی را به صورت دستی کپی کنید
اگر دسترسی SSH مبتنی بر رمز عبور به سرور خود ندارید، باید کلید عمومی سرور را به صورت دستی کپی کنید. در اینجا، محتویات فایل id_rsa.pub را به صورت دستی به فایل SSH/authorized_keys./~ دستگاه راه دور اضافه کنید. برای مشاهده محتویات کلید id_rsa.pub دستور زیر را وارد کنید:
cat ~/.ssh/id_rsa.pub
محتوای کلیدی شما باید به شکل زیر باشد:
Output ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7U/ASsmY095ywPsBo1XQ9PqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G2fJLRcGUr9q8/lERo9oxRm5JFX6TCmj6kmiFqv+Ow9gI0x8GvaQ== [email protected]
اکنون باید با استفاده از تمام روش های ممکن به هاست راه دور خود دسترسی داشته باشید. هنگامی که به حساب خود در سرور راه دور دسترسی پیدا کردید، باید مطمئن شوید که دایرکتوری SSH./~ وجود دارد. اگر نیاز به ایجاد دایرکتوری دارید، می توانید دستور زیر را وارد کنید. البته، اگر دایرکتوری از قبل وجود داشته باشد، با وارد کردن این دستور اتفاق خاصی نمی افتد:
mkdir -p ~/.ssh
فایل authorized_keys را در این دایرکتوری ایجاد یا تغییر دهید. همچنین، میتوانید محتویات فایل id_rsa.pub را به انتهای فایل authorized_keys اضافه کنید. در صورت لزوم با استفاده از دستور زیر آن را ایجاد کنید:
echo public_key_string >> ~/.ssh/authorized_keys
در دستور بالا، خروجی دستور cat ~/.SSH/id_rsa.pub را که روی سیستم محلی خود اجرا کردید، جایگزین public_key_string کنید. توجه داشته باشید که باید با ssh-rsa AAAA شروع شود…
در نهایت، مطمئن شوید که دایرکتوری SSH./~ و فایل authorized_keys دارای مجوزهای مناسب هستند:
chmod -R go= ~/.ssh
دستور بالا تمام مجوزهای گروه و سایر مجوزهای دایرکتوری SSH را حذف می کند./~.
اگر از Root User (حساب Root) برای تنظیم کلیدهای حساب کاربری استفاده می کنید، باید بدانید که دایرکتوری SSH./~ باید متعلق به User باشد نه Root:
chown -R sammy:sammy ~/.ssh
توجه داشته باشید که در این آموزش کاربر ما Sammy نام دارد. اما باید همانطور که در دستور بالا آمده است، نام کاربری مناسب را با Sammy جایگزین کنید.


چگونه یک کلید SSH را کپی کنم؟
مرحله 3. با استفاده از کلیدهای SSH به سرور اوبونتو احراز هویت کنید
اگر یکی از مراحل ذکر شده را با موفقیت انجام دهید، باید بتوانید بدون استفاده از رمز عبور حساب کاربری راه دور وارد میزبان راه دور شوید:
ssh [email protected]_host
اگر این اولین باری است که به این هاست ها متصل می شوید، به احتمال زیاد چیزی شبیه به زیر خواهید دید:
Output The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established. ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe. Are you sure you want to continue connecting (yes/no)? yes
این پیام نشان می دهد که رایانه محلی شما میزبان های راه دور را نمی شناسد. در اینجا باید Yes را تایپ کرده و Enter را فشار دهید تا فرآیند ادامه یابد. اگر رمز عبور کلید خصوصی خود را ارائه نکنید، بلافاصله وارد سیستم خواهید شد. اما اگر هنگام ایجاد کلید رمز عبور را وارد کرده باشید، از شما آن رمز عبور خواسته می شود.
پس از احراز هویت، Shell Session با حساب سرور اوبونتو پیکربندی شده برای شما باز می شود. اگر احراز هویت مبتنی بر کلید را با موفقیت انجام داده اید، به مرحله بعدی ادامه دهید تا یاد بگیرید چگونه می توانید با غیرفعال کردن احراز هویت رمز عبور، امنیت سیستم خود را افزایش دهید.
مرحله 4. احراز هویت رمز عبور را در سرور غیرفعال کنید
اگر می توانید بدون رمز عبور از طریق SSH وارد حساب خود شوید، احراز هویت مبتنی بر کلید SSH را با موفقیت برای حساب خود پیکربندی کرده اید. با این حال، باید توجه داشته باشید که احراز هویت مبتنی بر رمز عبور شما همچنان فعال است. بنابراین سرور شما در معرض حملات brute force قرار خواهد گرفت.
قبل از غیرفعال کردن احراز هویت رمز عبور، مطمئن شوید که می توانید با کلید SSH خود وارد سرور شوید. اطمینان حاصل کنید که هیچ حساب کاربری دیگری در سرور از این رمز عبور برای ورود به سرور استفاده نمی کند. از آنجایی که sudo ورودهای مبتنی بر رمز عبور را مسدود می کند، باید مطمئن شوید که هنوز دسترسی سرپرست دارید.
پس از اطمینان از اینکه حساب راه دور شما دارای امتیازات مدیریتی است، با استفاده از کلیدهای SSH وارد سرور راه دور خود شوید. شما می توانید این کار را به عنوان یک حساب کاربری ریشه یا کاربری یا با امتیازات sudo انجام دهید. در این مرحله باید فایل پیکربندی SSH Daemon را باز کنید:
sudo nano /etc/ssh/sshd_config
اکنون باید به دنبال دستورالعملی به نام PasswordAuthentication در فایل بگردید. این خط را می توان با یک # در ابتدای خط نظر داد. با حذف # و تنظیم مقدار روی no، خط را از نظر خارج کنید. این قابلیت شما را برای ورود از طریق SSH با استفاده از رمزهای عبور حساب کاربری غیرفعال می کند:
. . . PasswordAuthentication no . . .
پس از اتمام، فایل را با فشار دادن CTRL+X و سپس Y برای ذخیره فایل و سپس Enter برای خروج از Nano، ذخیره کرده و ببندید. برای اعمال تغییرات باید سرویس SSHd را مجددا راه اندازی کنید:
sudo systemctl restart ssh
توجه داشته باشید که در این مرحله، حتماً یک پنجره ترمینال جدید باز کنید و قبل از بستن جلسه فعلی خود، بررسی کنید که سرویس SSH به درستی کار می کند:
ssh [email protected]_host
هنگامی که مطمئن شدید که سرویس SSH شما به درستی کار می کند، می توانید با خیال راحت تمام جلسات سرور فعلی خود را ببندید. در حال حاضر، دیمون SSH در سرور اوبونتو شما فقط به احراز هویت مبتنی بر کلید SSH پاسخ میدهد و لاگینهای مبتنی بر رمز عبور غیرفعال هستند.


چگونه احراز هویت رمز عبور SSH را در اوبونتو غیرفعال کنیم؟
نتیجه
در این مقاله نحوه راه اندازی کلیدهای SSH در اوبونتو 20.04 را قدم به قدم به شما آموزش داده ایم. با انجام مراحل ذکر شده در این مقاله می توانید وارد سرور خود شوید و فعالیت های عادی خود را انجام دهید. تغییر پورت SSH می تواند سطوح بیشتری از امنیت را فراهم کند و خطر حملات را کاهش دهد.
سوالات متداول
1. چند مرحله برای تنظیم کلید SSH در اوبونتو وجود دارد؟
راه اندازی کلیدهای SSH در اوبونتو شامل مراحل مختلفی است که در این مقاله به 4 مرحله اشاره کردیم.
2. چگونه کلید عمومی را در سرور اوبونتو کپی کنیم؟
می توانید این کار را با استفاده از ssh-copy-id یا به صورت دستی انجام دهید.
3. غیرفعال کردن احراز هویت رمز عبور در سرور چه فایده ای دارد؟
با غیرفعال کردن احراز هویت رمز عبور در سرور، امنیت سیستم را افزایش می دهد.
منبع:
digitalocean.com