رمزهای عبور SSH حدس زده میشوند. کلیدها نه. تغییر VPS به ورود مبتنی بر کلید بزرگترین ارتقای امنیتی منفردی است که میتوانید انجام دهید و حدود پنج دقیقه طول میکشد.
کلیدهای SSH چگونه کار میکنند
شما یک جفت فایل میسازید. کلید خصوصی روی رایانهٔ شما میماند و هرگز به اشتراک گذاشته نمیشود. کلید عمومی روی سرور قرار میگیرد. هنگام اتصال، سرور از رایانهٔ شما میخواهد ثابت کند کلید خصوصی متناظر را دارد، بدون آنکه خود کلید هرگز از شبکه عبور کند.
1. ساخت جفت کلید
ssh-keygen -t ed25519 -C "me@laptop"
کلیدهای Ed25519 کوتاه، سریع و مدرناند. وقتی پرسیده شد یک عبارت عبور (passphrase) انتخاب کنید تا سرقت لپتاپ به معنای سرقت سرور نباشد. در Windows 10 و 11 همین دستور در PowerShell کار میکند.
2. کپی کلید عمومی به سرور
ssh-copy-id user@your.server.ip
بدون ssh-copy-id، محتوای ~/.ssh/id_ed25519.pub را به ~/.ssh/authorized_keys روی سرور اضافه کنید، سپس chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys را اجرا کنید.
3. پیش از خاموش کردن رمز عبور آزمایش کنید
یک ترمینال دوم باز کنید و با کلید وارد شوید. تا زمانی که این کار نکرده نشست اول را باز نگه دارید تا یک اشتباه نتواند شما را بیرون بیندازد.
4. غیرفعال کردن ورود با رمز عبور
sudo nano /etc/ssh/sshd_config.d/99-hardening.conf
PasswordAuthentication no
PermitRootLogin prohibit-password
PubkeyAuthentication yes
sudo sshd -t && sudo systemctl reload ssh
بررسی sshd -t اشتباهات تایپی را پیش از آنکه دسترسی شما را خراب کنند پیدا میکند. در برخی سیستمها سرویس sshd نامیده میشود نه ssh.
5. یک پیکربندی مرتب برای کلاینت
# ~/.ssh/config
Host myvps
HostName your.server.ip
User deploy
IdentityFile ~/.ssh/id_ed25519
حالا فقط ssh myvps را تایپ میکنید.
روشهای خوب
- برای هر دستگاه یک کلید جدا استفاده کنید تا بتوانید یکی را بدون دست زدن به بقیه ابطال کنید.
- از
ssh-agentاستفاده کنید تا عبارت عبور را یک بار در هر نشست وارد کنید. - وقتی دستگاهی گم میشود یا کارمندی میرود، کلیدها را از
authorized_keysحذف کنید. - fail2ban را اضافه کنید تا نویز لاگ کم شود، مانند چکلیست سختسازی ۱۵ دقیقهای ما.