نحوه تنظیم SSH برای اتصال به سرور راه دور از طریق کلید عمومی
SSH یا Secure Shell یک پروتکل شبکهای برای ایجاد ارتباطی امن بین سرور و کلاینت میباشد. با استفاده از ارتباط SSH علاوه بر اجرای دستورات بر روی سرور راه دور، میتوانیم از آن برای ایجاد تونل و Port Forwarding نیز استفاده کنیم.
SSH از مکانیزمهای مختلفی برای احراز هویت پشتیبانی میکند. دو مورد از رایجترین آنها استفاده از پسورد و کلید عمومی میباشد.
احراز هویت با استفاده از کلید عمومی مبتنی بر استفاده از امضای دیجیتال میباشد. استفاده از این روش علاوه امنیت بالا، از سادگی زیادی نسبت به روش سنتی مبتنی بر پسورد برخوردار میباشد.
در ادامه نحوه ایجاد کلید عمومی و تنظیم SSH برای استفاده از متد احراز هویت مبتنی بر کلید و اتصال له سرور راه دور بدون وارد کردن پسورد توضیح داده شده است.
ایجاد کلید SSH بر روی سرور
کلیدهای SSH بر روی سرور در مسیر root/.ssh/id_*.pub ذخیره میشود و با دستور زیر قابل لیست شدن میباشند. اگر جفت کلید جدیدی ایجاد شود، کلیدهای قدیمی Overwite خواهد شد.
ls -l ~/.ssh/id_*.pub
اگر دستور بالا مقداری مانند No such file or directory یا Nomatch found برگرداند، این به این معنی است که کارب مورد نظر دارای کلید SSH نمیباشد و شما میتوانید در این مرحله جفت کلید SSH را برا این کاربر ایجاد نمایید. به عبارت دیگر اگر شما کلید SSHی قبلا ایجاد کردهاید، میتوانید از آن بک آپ گرفته و یک جفت کلید جدید ایجاد نمایید.
برای ایجاد یک جفت کلید با طول 4096 از دستور زیر استفاده کنید. ایمیل به صورت کامنت برای این جفت کلید در نظر گرفته میشود.
“ssh-keygen -t rsa -b 4096 -C “[email protected]
برای شناسایی کلید جدید ایجاد شده از دستور زیر استفاده کنید.
*_ls ~/.ssh/id
کپی کردن کلید عمومی بر روی سرور راه دور
با توجه با ایجاد کلید در مرحله قبل، الان نوبت کپی کردن کلید عمومی بر روی سرور راه دور میباشد که قصد اتصال به آن را دارید.
سادهترین راهی که برای کپی کردن کلید عمومی از سیستم کاربر بر روی سرور راه دور پیشنهاد میشود، استفاده از ابزار ssh-copy-id میباشد. برای این کار از دستور زیر استفاده کنید.
ssh-copy-id remote_username@sever_ip_address
با اجرای دستور بالا شما بایستی پسورد کاربر سرور ریموت را وارد نمایید تا عملیات کپی کردن کلید عموعی به اتمام برسد.
به هر دلیلی اگر ابزار ssh-copy-id بر روی سیستمان نبود میتوانید از دستور زیر برای کپی کردن کلید عمومی استفاده کنید.
cat ~/.ssh/id_rsa.pub | ssh remote_username@server_ip “mkdir -p ~/.ssh && chmod 700 ~/.ssh/ && cat >> ~/.ssh/authorized_keys && chmod 600 ~/ssh/authorized_keys” end
بعد اتمام مراحل بالا شما میتوانید بدون وارد کردن پسورد به سرور از طریق SSH متصل شوید.
غیرفعال کردن احراز هویت با پسورد
غیرفعال کردن لاگین با پسود امنیت دوچندانی به سرور شما میدهد.
قبل از غیرفعال کردن لاگین با پسورد از لاگین صحیح با گواهی و بدون نیاز به پسورد مطمئن شوید.
بعد از لاگین به سرور از مسیر زیر تنظیمات SSH را ویرایش و متغییرهای زیر را پیدا و به مقادیر زیر تغییر داده و ذخیره کنید.
sudo nano /etc/ssh/sshd_config
PasswordAthuntication no
ChallengeResponseAuthentication no
UsePAM
برای اعمال شدن تغییرات سرویس SSH را ریستارت کنید.
sudo systemctl restart ssh
دیدگاهتان را بنویسید