−25%

på Windows ved årlig betaling, til 31/10. Se pakkerne

EQVPS

Sådan opretter du en sudo-bruger på en VPS og stopper med root

Opret en sudo-bruger uden root-rettigheder på Ubuntu eller Debian, giv den din SSH-nøgle, test den, og slå så root-login fra — i en rækkefølge der ikke låser dig ude.

Næsten hver ny VPS starter på samme måde: du logger ind som root, installerer et par ting, og en måned senere er du stadig root. Det virker lige indtil et indsat script sletter den forkerte mappe. At sætte en almindelig bruger med sudo op tager fem minutter, og rækkefølgen betyder mere end kommandoerne — gør du det forkert, låser du dig selv ude.

Her er den sikre rækkefølge for Ubuntu 22.04/24.04 og Debian 12.

1. Opret brugeren

Som root:

adduser deploy
usermod -aG sudo deploy

adduser spørger efter en adgangskode og nogle valgfrie oplysninger (tryk bare Enter igennem dem). Vælg en rigtig adgangskode: du skal skrive den til sudo. På et minimalt Debian-image kører du først apt install -y sudo, hvis kommandoen mangler.

2. Giv den din SSH-nøgle

Det nemmeste er at kopiere roots autoriserede nøgler og bevare den rigtige ejer:

rsync --archive --chown=deploy:deploy /root/.ssh /home/deploy

Hvis du hellere vil gøre det i hånden:

mkdir -p /home/deploy/.ssh
cp /root/.ssh/authorized_keys /home/deploy/.ssh/
chown -R deploy:deploy /home/deploy/.ssh
chmod 700 /home/deploy/.ssh
chmod 600 /home/deploy/.ssh/authorized_keys

Forkerte rettigheder er den klassiske grund til, at nøglelogin fejler i stilhed. SSH ignorerer en authorized_keys, som andre brugere kan skrive til.

3. Test før du ændrer noget

Hold din root-session åben. I en ny terminal:

ssh -p 22 deploy@203.0.113.10
sudo whoami

Brug din egen IP og port — på en NAT-plan er det din personlige SSH-port fra panelet. Hvis sudo whoami udskriver root, er du godt kørende. Fejler logindet, har du stadig root-vinduet til at rette det.

4. Slå root-login fra

Luk nu døren. Opret en lille drop-in-fil i stedet for at redigere hovedkonfigurationen:

cat > /etc/ssh/sshd_config.d/10-hardening.conf <<'EOF'
PermitRootLogin no
PasswordAuthentication no
EOF
sshd -t && systemctl reload ssh

sshd -t tjekker syntaksen først. En ødelagt konfiguration plus en reload er, hvordan folk ender med at skulle bruge konsollen. PasswordAuthentication no giver kun mening, når nøglelogin virker for din nye bruger — hvilket du lige har testet.

Åbn en terminal mere og bekræft, at root bliver afvist, og at deploy stadig kommer ind. Luk så den gamle root-session.

5. Valgfrit: sudo uden adgangskode til automatisering

Har et deployscript brug for sudo uden prompt, så giv det præcis det og intet bredere:

visudo -f /etc/sudoers.d/deploy
deploy ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart myapp

Helt ærligt er NOPASSWD: ALL fristende, men så er en stjålet nøgle lig med root. Begræns det til de kommandoer, automatiseringen kører.

Hvis noget går galt

Webkonsollen i panelet afhænger hverken af SSH eller firewallen. Log ind der, ret filen i /etc/ssh/sshd_config.d/, reload, færdig. Hele genoprettelsen har vi beskrevet i sådan kommer du ind på en VPS, du er låst ude af.

Hvad nu

Adgangsmulighederne for hver plan står i dokumentationen om adgang. Selv en Nano til $3 fortjener en bruger uden root — det er den billigste sikkerhedsopgradering, der findes.

FAQ

Hvorfor ikke bare blive ved med root?

Alt, hvad du kører som root, kan ødelægge hele systemet, også en tastefejl. Bots prøver desuden brugernavnet 'root' først, så når du slår root-login fra, forsvinder det mest gættede mål. En navngivet bruger med sudo giver dig en pause før hver privilegeret kommando og en log over, hvad der blev kørt.

Hvad hvis jeg låser mig selv ude?

Brug webkonsollen i dit kundepanel. Den virker, selv når SSH er i stykker, eller firewallen blokerer dig, så du kan logge ind og rette sshd_config. Det er også derfor, du tester den nye bruger, før du lukker din root-session.

Skal jeg tillade sudo uden adgangskode?

Til en personlig konto, behold adgangskodeprompten — den er sidste forsvarslinje, hvis din SSH-nøgle lækker. Sudo uden adgangskode er rimeligt for en separat deploy-bruger, som automatisering bruger, begrænset til de kommandoer den reelt har brug for.

Kommandoen sudo findes ikke på min Debian-server. Hvorfor?

Minimale Debian-images har den ikke altid med. Installér den som root med 'apt install -y sudo', og føj derefter din bruger til gruppen sudo.

Hvilken SSH-port skal jeg bruge?

Den, der står i dit kundepanel. Planer med dedikeret IP bruger port 22 på din egen IP; NAT-planer bruger din personlige SSH-port.

Kommentarer

Ingen kommentarer endnu. Vær den første.

Skriv en kommentar

Kommentarer modereres, før de vises.