SSH مخفف عبارت Secure Shell است. این یک پروتکل شبکه متنباز است که برای اتصال به سرورها و اجرای دستورات از راه دور، که برای کاربران VPS ایدهآل است، مورد استفاده قرار میگیرد. برای فعالسازی SSH، دو روش وجود دارد:
- احراز هویت با استفاده از رمز عبور
- احراز هویت با استفاده از کلید عمومی (Public Key)
احراز هویت با استفاده از کلید عمومی (Public Key) به طور معمول به عنوان پیکربندی ssh بدون رمز عبور شناخته میشود. در این مقاله قصد داریم با چگونگی پیکربندی ssh بدون رمز عبور را قدم به قدم بررسی کنیم.
وب سایت روناک هاست بزرگترین مرجع خرید و فروش انواع سرویس های ابری و میزبانی وب است که از جلمه آن ها می توان به موارد زیر اشاره کرد:
سرور مجازی NVME | یک مدل سرور مجازی که به هارد های NVME پر سعرت مجهز شده است که بتواند سایت ها و اطلاعات را با سرعت بالا بارگذاری کند
سرور مجازی بورس | نوعی سرور مجازی که مخصوص کسانی است که برای بورس ، فارکس و انجام معاملات مالی و جهانی می خواهد سرویسی ایمن و سریع داشته باشند
سرور مجازی ترید | نوعی دیگر از سرور های مجازی است که مخصوص افراد تریدر و کسانی که در بازار های مالی و ارز دیجیتال فعالیت می کنند ساخته شده است
سرور اختصاصی | یکی دیگر از سرویس های روناک هاست که مخصوص افراد حرفه ای و کارهای سنگین برای کسانی که فعالیت های اختصاصی روی سرور می خواهند انجام دهند
هاست وردپرس ارزان | یک هاست محبوب برای سایت های وردپرسی با قیمت مناسب و بالاترین کیفیت و پشتیبانی عالی
هاست ووکامرس | یک هاست وردپسی اما مناسب برای سایت های فروشگاهی و آنلاین شاپ ها با سرعت بالا و قیمت بسیار مناسب
چرا از پیکربندی ssh بدون رمز عبور استفاده کنیم؟
کاربران گاهی اوقات به دلیل پاسخگویی دشوار و ناراحتی ناشی از استفاده از گزینههای محافظت شده با رمز عبور، ممکن است مشکلی داشته باشند. ممکن است در محیطی که به طور مکرر نیاز به وارد کردن رمز عبور دارید، خود را پیدا کنید.
SSH بدون نیاز به رمز عبور چندین مزیت دارد:
- اتصال آسان و غیر تعاملی: کاربران نیازی ندارند هر بار در جلسه جدید رمز عبور را تایپ کنند.
- امنیت بهتر نسبت به رمز عبورها، زیرا بر اساس رمزنگاری کلید عمومی-خصوصی عمل میکند.
- اعتبارسنجی و مدیریت اجازهها بهتر
- یک راهحل مناسب برای زیرساختهای کوچک و بزرگ
- آسان برای ایجاد و نگهداری
برای شروع استفاده از پیکربندی ssh بدون رمز عبور، شما باید یک کلید عمومی ایجاد کنید. در این آموزش، ما به نسخه 2 SSH تمرکز خواهیم کرد که جدیدترین و امنترین پروتکل است. با استفاده از SSH به سرور VPS خود وصل شوید و میتوانید شروع کنید! ابتدا، میتوانید بررسی کنید که آیا کلید SSH دستگاه کاربر (client machine) از قبل وجود دارد یا خیر. این کار مانع از نوشتن مجدد پیکربندی کنونی میشود. میتوانید از دستور زیر برای بررسی استفاده کنید:
ls -al ~/.ssh/id_*.pub
اگر کلید موجودیت داشته باشید، میتوانید انتخاب کنید که مراحل ایجاد کلید SSH را بگذرانید، پیکربندی کنونی را جایگزین کنید یا یک نسخه پشتیبان از کلید موجود ایجاد کنید. اگر کلید وجود نداشته باشد، خروجی زیر را مشاهده خواهید کرد:
ls: cannot access /users/appsadm/.ssh/id_*.pub: No such file or directory
سپس میتوانیم به مراحل ایجاد کلید SSH ادامه دهیم.
برای پیکربندی ssh بدون رمز عبور در اوبونتو و سنتاس:
برای ایجاد یک کلید عمومی و خصوصی در اوبونتو یا سنتاس، از دستور زیر استفاده کنید:
ssh-keygen -t rsa
گزینه -t به معنی نوع است و RSA پروتکلی است که برای تولید کلید استفاده میشود. RSA نوع پیشفرض است، بنابراین همچنین میتوانید از نسخه سادهتر دستور ssh-keygen استفاده کنید.
کلید پیشفرض ۲۰۴۸ بیت است. با این حال، اگر میخواهید امنیت قویتری داشته باشید، میتوانید مقدار را به ۴۰۹۶ بیت تغییر دهید. در این صورت، دستور به صورت زیر خواهد بود:
ssh-keygen -t rsa -b 4096
این فرآیند ایجاد کلید تعاملی است و شما باید به چند سوال پاسخ دهید، مانند:
- مسیر فایلی که میخواهید کلید را در آن ذخیره کنید (/home/.ssh/id_rsa)
- عبارت عبور را وارد کنید (خالی برای عدم استفاده از عبارت عبور)
برای این دو سوال میتوانید کلید Enter را فشار دهید و مقادیر پیشفرض را بگیرید. عبارت عبور برای رمزنگاری کلید خصوصی استفاده میشود؛ با این حال، نیازی به آن نیست و میتوانید خالی رها کنید. کلید خصوصی در محل پیشفرض ذخیره میشود – .ssh/id_rsa .
کلید عمومی در فایل .ssh/id_rsa.pub ذخیره میشود. حالا فرآیند ایجاد کلید به اتمام رسیده است. شما میتوانید با استفاده از هر ویرایشگری فایلها را تایید کنید.
کپی کردن کلید عمومی برای فعالسازی و پیکربندی ssh بدون رمز عبور
کپی کردن کلید عمومی به دستگاه مقصد میتواند به سه روش انجام شود:
- استفاده از دستور ssh-copy-id
- کپی با استفاده از SSH
- کپی دستی
گزینه اول، پیشنهاد شدهترین و سریعترین روش است. دستور ssh-copy-id به طور پیشفرض در بیشتر نسخههای لینوکس موجود است. با این حال، در برخی موارد، اگر با استفاده از ssh-copy-id مشکل دارید یا به این دستور دسترسی ندارید، میتوانید از گزینههای باقیمانده استفاده کنید.
روش ۱: استفاده از دستور ssh-copy-id
نحوه استفاده از این دستور به صورت اصولی به شرح زیر است:
ssh-copy-id remote_user@remote_ip_address
یک پیام شما را برای وارد کردن رمز عبور دستگاه از راه دور درخواست میدهد. پس از تأیید موفقیتآمیز، کلید عمومی SSH تولید شده به فایل authorized_keys دستگاه از راه دور افزوده خواهد شد. پس از افزودن کلید، اتصال به صورت خودکار بسته خواهد شد.
روش ۲: کپی کردن کلید خصوصی با استفاده از SSH
روش زیر از SSH برای کپی کردن کلید خصوصی استفاده میکند. این روش میتواند زمانی مورد استفاده قرار گیرد که شما دسترسی SSH به سرور بر اساس یک رمز عبور داشته باشید. دستور زیر اقدام به انجام فرآیند میکند. تمامی چیزی که نیاز دارید این است که نام کاربری کاربر از راه دور و آدرس IP دستگاه را وارد کنید.
cat ~/.ssh/id_rsa.pub | ssh remote_user@remote_ip_address “mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys”
بنابراین، کلید به فایل authorized_keys دستگاه از راه دور اضافه خواهد شد.
روش ۳: کپی کردن کلید عمومی به صورت دستی
روش سوم کمی پیچیدهتر است چرا که بهطور کامل دستی است. با این حال، در برخی موارد که روشهای دیگر کار نمیکنند، میتوانید از این روش استفاده کنید! شما باید بهصورت دستی محتویات فایل id_rsa.pub را به فایل ~/.ssh/authorized_keys سرور از راه دور اضافه کنید. در دستگاه مبدا، میتوانید محتویات فایل id_rsa.pub را با استفاده از ویرایشگر vi یا دستور cat مشاهده کنید:
cat ~/.ssh/id_rsa.pub
این کار نتیجهای شامل کلیدی شبیه به ssh-rsa را نشان خواهد داد. آن را کپی کنید! سپس در سرور از راه دور، وارد شوید و اگر پوشه .ssh وجود ندارد، آن را ایجاد کنید.
mkdir -p ~/.ssh
میتوانید به همان روش فایل authorized_keys را ایجاد کنید. کلید عمومی SSH کپیشده را به فایل خالی اضافه کنید همانند زیر:
echo SSH_public_key >> ~/.ssh/authorized_keys
کلید_عمومی_SSH کلید عمومیای است که از دستگاه مبدا کپی کردهاید. با ssh-rsa آغاز خواهد شد. با کپی شدن کلید، میتوانید دسترسیهای موردنیاز به فهرست .ssh سرورهای از راه دور را با استفاده از دستور chmod ارائه دهید.
chmod -766 ~/.ssh
تست کردن SSH بدون نیاز به رمز
با این کار، باید توانسته باشیم SSH را بدون نیاز به رمز عبور فعال کنیم و پیکربندی اولیه را انجام دهیم. برای تست عملکرد، میتوانید از طریق دستگاه مبدا به سرور از راه دور دسترسی پیدا کنید. نحوه استفاده از دستور به صورت زیر است:
ssh remote_user@remote_IP_address
اگر همه چیز به خوبی کار کرده باشد، در این صورت بدون نیاز به وارد کردن رمز عبور میتوانید به صورت خودکار وارد شوید.
چگونه پیکربندی ssh بدون رمز عبور را غیرفعال کنیم
اگر تصمیم میگیرید که پیکربندی ssh بدون رمز عبور برای شما مناسب نیست، میتوانید آن را با دنبال کردن مراحل زیر غیرفعال کنید. برای اعمال این تغییرات، فایل پیکربندی SSH را باز کنید – /etc/ssh/ssh_config . هر ویرایشگری کار خواهد کرد، ما از نانو استفاده میکنیم. در اینجا یک ورودی با نام PasswordAuthentication وجود دارد. خطوط را به صورت زیر ویرایش کنید:
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no
پس از انجام این تغییرات، فایل را ذخیره کنید و سرویس SSH را مجدداً راهاندازی کنید. در اوبونتو 18.04 میتوانید به صورت زیر عمل کنید:
sudo systemctl restart ssh
و در سنتاس ۷ میتوانید از دستور زیر استفاده کنید:
sudo systemctl restart sshd
نتیجهگیری
این آموزش ما در مورد پیکربندی ssh بدون رمز عبور به پایان رسید. ما فرآیند تنظیم SSH بدون نیاز به رمز عبور، چگونگی پیکربندی آن و همچنین چگونگی غیرفعال کردن آن را پوشش دادیم. امیدواریم که این راهنما برای شما مفید بوده باشد!