Skip to content
VDS · سیکیورٹی

SSH کو مضبوط کرنا: کیز، پورٹ، پابندیاں

sshd کیسے کنفیگر کریں: صرف کی سے لاگ ان، یوزرز اور ایڈریسز پر پابندی، پورٹ تبدیل کرنا، اور اس دوران رسائی کیسے نہ کھوئیں۔

اپ ڈیٹ 23 اگست، 2026

SSH آپ کی روزانہ استعمال ہونے والی مشین تک پہنچنے کا واحد دروازہ ہے، اور خودکار بروٹ فورس حملوں کا بنیادی ہدف بھی۔ آپ اسے ایک بار کنفیگر کرتے ہیں، اور اس کے بعد اسے کسی توجہ کی ضرورت نہیں رہتی۔

تمام تبدیلیاں ایک الگ فائل /etc/ssh/sshd_config.d/99-hardening.conf میں کریں — اس طرح پیکیج اپ ڈیٹ آپ کا کام اوور رائٹ نہیں کرے گا اور آپ کو رسائی سے محروم نہیں چھوڑے گا۔

پاس ورڈز کے بجائے کیز

PasswordAuthentication no
PubkeyAuthentication yes
KbdInteractiveAuthentication no
PermitEmptyPasswords no

لاگو کرنے سے پہلے یقینی بنائیں کہ کی واقعی کام کرتی ہے: ایک الگ ونڈو میں اس کے ذریعے لاگ ان کریں۔ /hosting/vds/m/<id> پینل کے "Access" ٹیب میں شامل کی گئی کیز root صارف کو جاتی ہیں؛ دوسرے صارفین کے لیے آپ کو انہیں دستی طور پر ~/.ssh/authorized_keys میں ڈالنا ہوگا۔

اپنی طرف کی بنائی گئی کی:

ssh-keygen -t ed25519 -C "work laptop"

ed25519 RSA سے چھوٹی اور تیز ہے۔ اگر آپ کا ٹول اسے سپورٹ نہیں کرتا، تو کم از کم 4096 بٹس کی لمبائی کے ساتھ rsa استعمال کریں۔

کون لاگ ان کر سکتا ہے

PermitRootLogin prohibit-password
AllowUsers artem deploy
MaxAuthTries 3
LoginGraceTime 20
ClientAliveInterval 300
ClientAliveCountMax 2

پاس ورڈز غیر فعال کرنے کے بعد AllowUsers سب سے مؤثر اصول ہے: دوسروں کے ناموں پر بروٹ فورس فوراً رک جاتی ہے۔ root کے بارے میں مزید — پاس ورڈ کے ذریعے root لاگ ان غیر فعال کریں۔

ایک ایڈریس کی پابندی، اگر آپ کسی مقررہ جگہ سے کام کرتے ہیں:

Match Address 203.0.113.5
    PermitRootLogin yes

پورٹ تبدیل کرنا

SSH کو 22 سے غیر معیاری پورٹ پر منتقل کرنا آپ کو ہدف بنائے گئے حملے سے محفوظ نہیں کرتا، لیکن یہ آپ کے لاگز میں خودکار اسکینرز کا تقریباً تمام شور ختم کر دیتا ہے۔

Port 2222

اقدامات کی ترتیب بالکل یہی ہے:

ufw allow 2222/tcp
sshd -t
systemctl restart ssh
ssh -p 2222 artem@<address>
ufw delete allow 22/tcp

فائر وال کا اصول ری اسٹارٹ سے پہلے آتا ہے، اور پرانے کو ہٹانا صرف نئے پورٹ پر کامیاب لاگ ان کے بعد۔ پورٹس بھی دیکھیں۔

لاگو کرنا اور تصدیق کرنا

sshd -t
sshd -T | grep -Ei "passwordauth|permitroot|allowusers|port"
systemctl restart ssh

sshd -t نحو کی جانچ کرتا ہے، sshd -T حتمی مؤثر کنفیگریشن دکھاتا ہے — وہی، نہ کہ جو آپ نے فائل میں لکھی۔

کنفیگر کرتے وقت اپنا موجودہ سیشن کھلا رکھیں۔ یہ sshd ری اسٹارٹ سے بچ جائے گا، اور اس کے ذریعے آپ ناکام ترمیم کو واپس کر سکتے ہیں۔ اگر آپ واقعی خود کو لاک آؤٹ کر لیں — پینل کا "Console" ٹیب SSH سے آزادانہ کام کرتا ہے۔

عام غلطیاں

غلطینتیجہحل
کی ٹیسٹ کیے بغیر پاس ورڈز غیر فعال کرنانیٹ ورک رسائی مکمل طور پر ختمپینل کنسول کے ذریعے لاگ ان کریں اور سیٹنگ بحال کریں
sshd_config.d کی لائن کے اوپر مرکزی فائل میں ترمیمسیٹنگ لاگو نہیں ہوتیsshd -T سے جانچ کریں
ufw اصول کے بغیر پورٹ تبدیل کرنارسائی ختمپہلے اصول، پھر پورٹ
~/.ssh پر 700 سے وسیع اجازتیںکی خاموشی سے نظر انداز ہو جاتی ہےchmod 700 ~/.ssh، chmod 600 authorized_keys
اپنا نام شامل کیے بغیر AllowUsersآپ خود کو لاک آؤٹ کر لیتے ہیںپینل کنسول، فائل میں ترمیم کریں

sshd_config میں، کسی پیرامیٹر کی پہلی موجودگی جیت جاتی ہے، اور sshd_config.d کی فائلیں شروع میں شامل کی جاتی ہیں۔ لہٰذا فائل پڑھنے کے بجائے sshd -T سے نتیجے کی تصدیق کریں۔

fail2ban باقی بروٹ فورس شور کو ختم کر دے گا۔