پرش به محتوا

سخت‌سازی SSH در Debian

ورود با کلید، بستن root و رمز عبور، محدود کردن کاربران مجاز و الگوریتم‌های رمزنگاری قوی؛ با فایل‌های جداگانه در sshd_config.d.

Debian 13سطح: متوسطبرای: Debian 13، Debian 12به‌روزرسانی: ۱۶ آبان ۱۴۰۵

۱. کلید روی سرور

از رایانه‌ی خود (اگر کلید ندارید ابتدا ssh-keygen -t ed25519 بزنید):

bash
ssh-copy-id -i ~/.ssh/id_ed25519.pub admin@192.168.10.21

۲. پیکربندی

bash
sudo nano /etc/ssh/sshd_config.d/10-hardening.conf
ini
PermitRootLogin no
PasswordAuthentication no
KbdInteractiveAuthentication no
PubkeyAuthentication yes
AuthenticationMethods publickey
MaxAuthTries 3
LoginGraceTime 30
ClientAliveInterval 300
ClientAliveCountMax 2
AllowGroups sshusers
X11Forwarding no

AllowGroups فقط اعضای گروه sshusers را راه می‌دهد. پیش از اعمال، خودتان را به آن اضافه کنید:

bash
sudo groupadd -f sshusers
sudo usermod -aG sshusers admin

۳. الگوریتم‌های مدرن

bash
sudo nano /etc/ssh/sshd_config.d/20-crypto.conf
ini
KexAlgorithms sntrup761x25519-sha512@openssh.com,curve25519-sha256,curve25519-sha256@libssh.org
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com

۴. اعمال و آزمایش

bash
sudo sshd -t && sudo systemctl reload ssh

نشست فعلی را نبندید و از ترمینال دیگری وارد شوید. بعد بررسی کنید که ورود با رمز رد می‌شود:

bash
ssh -o PubkeyAuthentication=no admin@192.168.10.21

پیام Permission denied (publickey) یعنی همه‌چیز درست است.