Ubuntu’da root’ga parol bilan kiriş odatda yopiq. Ba’zan u baribir kerak böladi — eski panel, skript yoki pudratçi uçun. Kirişni qanday töğri oçiş, parolni qanday özgartiriş va parol terib topişga oson nişon bölib qolmaslik haqida.
Nega root’ga SSH orqali kiriş yopiq
Ubuntu’da birdaniga ikkita himoya bor. Birinçidan, root’da köpinça parol yöq — hisob bloklangan, boşqaruv esa sudo orqali taklif qilinadi. Ikkinçidan, OpenSSH odatda PermitRootLogin prohibit-password bilan işlaydi: root faqat SSH-kalit bilan kira oladi, parol bilan — yöq. Bulutli obrazlarda qöşimça ravişda /etc/ssh/sshd_config.d/50-cloud-init.conf fayli bor, u köpinça hamma uçun parol bilan kirişni öçirib qöyadi.
Şuning uçun tartib quyidagiça: avval root parolini belgilaş, keyin SSH sozlamalarida kirişga ruxsat beriş, söng ruxsat haqiqatan qöllanganini tekşiriş.
1-qadam. Root parolini belgilang yoki özgartiring
Serverga sudo huquqli foydalanuvçi bilan (yoki şaxsiy kabinetdagi konsol orqali) kiring va bajaring:
sudo passwd root
Yangi parolni ikki marta kiriting — belgilar ekranda körinmaydi, bu normal holat. Agar allaqaçon root bölib işlayotgan bölsangiz, passwd buyruği kifoya. Boşqa foydalanuvçining paroli ham xuddi şunday özgartiriladi: sudo passwd ISM.
Hisob holatini tekşiring:
sudo passwd -S root
Ikkinçi maydonda P harfi — parol belgilangan va işlaydi, L — hisob bloklangan, NP — parol yöq.
Qanday parol qöyiş kerak. Internetga oçilgan root’ni server işga tuşgandan keyingi dastlabki soatlardayoq terib topişga urinişadi. Uzun tasodifiy parol kerak — kamida 16 belgi, luğatdagi söz emas va boşqa xizmatdagi parol emas. Uni bevosita serverda yaratiş mumkin:
openssl rand -base64 18
2-qadam. Root’ga SSH orqali kirişga ruxsat bering
Asosiy sshd_config faylini tahrirlamang — sozlamalar uçun alohida fayl yarating. Ubuntu 22.04 va 24.04 da /etc/ssh/sshd_config.d/ papkasidagi fayllar alifbo tartibida öqiladi va birinçi topilgan qiymat amal qiladi. Şuning uçun fayl nomini 01 bilan boşlaymiz — şunda u 50-cloud-init.conf dan oldin öqiladi:
sudo nano /etc/ssh/sshd_config.d/01-root-login.conf
Ikki qatorni qöying va faylni saqlang (Ctrl+O, Enter, Ctrl+X):
PermitRootLogin yes
PasswordAuthentication yes
Agar root faqat kalit bilan kirsa, SSH’da parolni oçiş şart emas: PermitRootLogin prohibit-password ni qoldiring va kalitni /root/.ssh/authorized_keys ga qöying — buni qanday qiliş SSH-kalitlar haqidagi maqolada yozilgan.
3-qadam. Sozlamalarni tekşiring va qöllang
Avval konfiguratsiyada xato yöqligini tekşiring va sshd aslida qaysi qiymatlardan foydalanişini köring:
sudo sshd -t
sudo sshd -T | grep -Ei "permitrootlogin|passwordauthentication"
permitrootlogin yes va passwordauthentication yes bölişi kerak. Boşqaça körsatsa — demak, sizning faylingizdan oldin teskari qiymatli boşqa fayl öqilyapti: uni sudo grep -ri "PermitRootLogin\|PasswordAuthentication" /etc/ssh/ buyruği bilan toping.
SSH’ni qayta işga tuşiring:
sudo systemctl restart ssh
UFW brandmaueri yoqilgan bölsa, unda SSH’ga ruxsat berilganiga işonç hosil qiling: sudo ufw status, kerak bölsa — sudo ufw allow OpenSSH.
4-qadam. Kirişni tekşiring
Joriy oynani yopmang. Yangi oyna oçing va ulaning:
ssh root@SIZNING_IP
Windows’da xuddi şu buyruq PowerShell’da işlaydi, PuTTY’da esa IP, 22-port va root loginini körsating. Kiriş amalga oşmasa, birinçi oynada sababni jurnaldan köring: sudo journalctl -u ssh -n 30.
Kiriş oçilgandan keyin root’ni qanday himoya qiliş
- Kalitga ötib oling. Root kirişi faqat sizga kerak bölib qolişi bilanoq SSH-kalit bilan kirişni sozlang va
01-root-login.conffaylidagi qatorlarniPermitRootLogin prohibit-passwordvaPasswordAuthentication noga almaştiring. - Kirişni IP böyiça çeklang. Doimiy manzildan ulansangiz, SSH’ga faqat undan ruxsat bering:
sudo ufw allow from 203.0.113.10 to any port 22 proto tcp, umumiy qoidani esa öçiring:sudo ufw delete allow OpenSSH. Buni allaqaçon ulangan oynadan va faqat öz IP’ingizga amin bölganingizda qiling. - fail2ban örnating.
sudo apt install fail2ban— Ubuntu’da u darhol SSH’ni himoya qiladi va bir neça muvaffaqiyatsiz urinişdan keyin manzillarni bloklaydi. - Kiriş endi kerak bölmasa, root’ni yoping. Faylni öçiring va SSH’ni qayta işga tuşiring:
sudo rm /etc/ssh/sshd_config.d/01-root-login.conf && sudo systemctl restart ssh. Root parolining özinisudo passwd -l rootbuyruği bilan bloklaş mumkin.
Root parolini unutgan bölsangiz
Sudo huquqli boşqa foydalanuvçi bölsa — u bilan kiring va sudo passwd root ni bajaring. Heç kim bilan kirib bölmasa, MyCloud VPS’ida mcvps.uz şaxsiy kabinetidagi server konsolini oçing va serverni qayta yuklang. GRUB menyusida (yuklaniş paytida Shift’ni bosib turing yoki Esc’ni bosing) «Advanced options» → «recovery mode» → «root» ni tanlang. Keyin bajaring:
mount -o remount,rw /
passwd root
reboot
Ubuntu’li serverni VPS serverlar sahifasida yaratiş mumkin — SSH sozlamalarida biror narsa notöğri ketsa ham, şaxsiy kabinetdagi konsol zaxira kiriş bölib qoladi.
Maqoladagi vazifada yordam kerakmi?
Konfiguratsiyani tanlaymiz, narxini hisoblaymiz va köçişda yordam beramiz.