OffshoreVps
امنیت5 اکتبر 20266 دقیقه مطالعهنوشته‌ی تیم OffshoreVps

توضیح کلیدهای SSH: ورود به VPS را در ۵ دقیقه ایمن کنید

یک کلید Ed25519 بسازید، آن را روی سرور کپی کنید، ورود با رمز عبور را با ایمنی غیرفعال کنید و یک پیکربندی مرتب SSH بسازید. این کار را روی هر سرور جدید انجام دهید.

رمزهای عبور SSH حدس زده می‌شوند. کلیدها نه. تغییر VPS به ورود مبتنی بر کلید بزرگ‌ترین ارتقای امنیتی منفردی است که می‌توانید انجام دهید و حدود پنج دقیقه طول می‌کشد.

پنجره‌ی ترمینال روی یک VPS که دستورهای کلیدهای SSH برای VPS را نشان می‌دهد، با «ssh-keygen -t ed25519 -C "me@laptop"» شروع می‌شود
نوع دستورهایی که در این راهنما روی سرور خود اجرا می‌کنید.

کلیدهای 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 را اجرا کنید.

گام‌های این راهنما به ترتیب: ۱. کلیدهای SSH چگونه کار می‌کنند؛ ۲. ۱. ساخت جفت کلید؛ ۳. ۲. کپی کلید عمومی روی سرور؛ ۴. ۴. غیرفعال کردن ورود با رمز عبور؛ ۵. ۵. یک پیکربندی مرتب کلاینت؛ ۶. روش‌های خوب
گام‌های این راهنما به ترتیب.

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 را اضافه کنید تا نویز لاگ کم شود، مانند چک‌لیست سخت‌سازی ۱۵ دقیقه‌ای ما.