Kaip įjungti root prisijungimą Linux serveryje
Numatytai daugelyje Linux serverių tiesioginis root prisijungimas per SSH ir SFTP išjungtas. Šioje pamokoje sužinosite, kaip jį įjungti, kai to reikia, ir kaip vėl išjungti.
Ko reikės prieš pradedant
- VPS arba dedikuoto serverio su Linux.
- Vartotojo su sudo teisėmis.
- SSH programos. Plačiau: Kaip naudotis PuTTY programa.
Root vartotojas turi neribotas teises, o jo vardą žino visi botai, kurie nuolat bando atspėti slaptažodžius. Root prisijungimą įjunkite tik tada, kai tikrai reikia, naudokite stiprų slaptažodį ir baigę darbą vėl jį išjunkite.
Root prisijungimo nustatymas
-
Prisijunkite prie serverio
Prisijunkite prie serverio per SSH su savo įprastu vartotoju.
-
Nustatykite root slaptažodį
Ubuntu sistemoje root slaptažodis numatytai nenustatytas, todėl prisijungti nepavyktų. Nustatykite jį komanda:
sudo passwd rootDu kartus įveskite naują slaptažodį. Rašant simboliai nerodomi, tai normalu. Jei root slaptažodį jau turite, šį žingsnį praleiskite.
-
Atidarykite SSH konfigūracijos failą
Atidarykite failą redaktoriuje:
sudo nano /etc/ssh/sshd_configPaspauskite Ctrl + W ir suraskite PermitRootLogin. Eilutė dažniausiai atrodo taip:
#PermitRootLogin prohibit-password -
Pakeiskite PermitRootLogin nustatymą
Ištrinkite # eilutės pradžioje ir pakeiskite reikšmę:
PermitRootLogin yesNorėdami vėl uždrausti root prisijungimą, pakeiskite reikšmę:
PermitRootLogin noKaip išsaugotiCtrl + O ir Enter išsaugo failą, Ctrl + X išeina iš redaktoriaus.
Kai kuriuose serveriuose, pvz. Ubuntu, nustatymai gali būti perrašyti failuose aplanke /etc/ssh/sshd_config.d/. Patikrinkite, ar ten nėra kitos PermitRootLogin reikšmės:
sudo grep -ri permitrootlogin /etc/ssh/sshd_config.d/ -
Patikrinkite konfigūraciją ir perkraukite SSH
Pirmiausia patikrinkite, ar faile nėra klaidų. Jei komanda nieko neparodo, viskas gerai:
sudo sshd -tTada perkraukite SSH tarnybą. Komanda priklauso nuo sistemos:
sudo systemctl restart sshsudo systemctl restart sshdNeuždarykite dabartinio langoKol neįsitikinsite, kad naujas prisijungimas veikia, palikite dabartinę SSH sesiją atidarytą. Jei kas nors nepavyks, per ją galėsite atšaukti pakeitimus.
Ar pavyko?
Patikrinkite, kokią PermitRootLogin reikšmę SSH naudoja iš tikrųjų:
sudo sshd -T | grep permitrootloginTada naujame lange pabandykite prisijungti kaip root, vietoje serverio_ip įrašę savo serverio IP:
ssh root@serverio_ipDažni klausimai
Prisijungiant kaip root rodoma „Access denied“
Patikrinkite, ar nustatėte root slaptažodį (2 žingsnis) ir ar /etc/ssh/sshd_config.d/ failuose nėra PermitRootLogin arba PasswordAuthentication no eilučių, kurios perrašo jūsų nustatymą.
Klaida „Unit sshd.service not found“
Ubuntu ir Debian sistemose SSH tarnyba vadinasi ssh. Naudokite komandą sudo systemctl restart ssh.
Ar yra saugesnis būdas?
Taip. Nustatykite PermitRootLogin prohibit-password ir prisijunkite su SSH raktu vietoje slaptažodžio. Dar geriau dirbti su atskiru vartotoju ir naudoti sudo.
Ar šis nustatymas galioja ir SFTP?
Taip. SFTP naudoja tą pačią SSH tarnybą, todėl root prisijungimas per WinSCP ar FileZilla veiks arba neveiks pagal tą patį nustatymą.
Kas toliau
Jei kyla sunkumų, parašykite mums į gyvąją pagalbą arba el. paštu.