−25%

στα Windows με ετήσια χρέωση, έως 31/10. Δείτε τα πακέτα

EQVPS

Πώς να δημιουργήσετε χρήστη sudo σε VPS και να σταματήσετε το root

Δημιουργήστε χρήστη sudo χωρίς δικαιώματα root σε Ubuntu ή Debian, δώστε του το SSH κλειδί σας, δοκιμάστε τον και μετά κλείστε τη σύνδεση root — με σειρά που δεν σας κλειδώνει έξω.

Σχεδόν κάθε νέο VPS ξεκινά με τον ίδιο τρόπο: μπαίνετε ως root, εγκαθιστάτε μερικά πράγματα και έναν μήνα αργότερα είστε ακόμα root. Δουλεύει μέχρι τη μέρα που ένα script που επικολλήσατε σβήνει λάθος φάκελο. Η ρύθμιση ενός κανονικού χρήστη με sudo παίρνει πέντε λεπτά, και η σειρά μετράει περισσότερο από τις εντολές — αν την μπερδέψετε, κλειδώνεστε έξω.

Αυτή είναι η ασφαλής σειρά για Ubuntu 22.04/24.04 και Debian 12.

1. Δημιουργήστε τον χρήστη

Ως root:

adduser deploy
usermod -aG sudo deploy

Το adduser ζητά κωδικό και κάποια προαιρετικά στοιχεία (απλώς πατήστε Enter). Διαλέξτε πραγματικό κωδικό: θα τον πληκτρολογείτε για το sudo. Σε ελάχιστο image του Debian, εκτελέστε πρώτα apt install -y sudo αν λείπει η εντολή.

2. Δώστε του το SSH κλειδί σας

Ο ευκολότερος τρόπος είναι να αντιγράψετε τα εξουσιοδοτημένα κλειδιά του root κρατώντας σωστό ιδιοκτήτη:

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

Αν προτιμάτε να το κάνετε με το χέρι:

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

Τα λάθος δικαιώματα είναι ο κλασικός λόγος που η σύνδεση με κλειδί αποτυγχάνει σιωπηλά. Το SSH αγνοεί ένα authorized_keys στο οποίο μπορούν να γράψουν άλλοι χρήστες.

3. Δοκιμάστε πριν αλλάξετε οτιδήποτε

Κρατήστε ανοιχτή τη συνεδρία root. Σε ένα νέο τερματικό:

ssh -p 22 deploy@203.0.113.10
sudo whoami

Χρησιμοποιήστε τη δική σας IP και θύρα — σε πλάνο NAT είναι η προσωπική θύρα SSH από τον πίνακα. Αν το sudo whoami τυπώσει root, είστε εντάξει. Αν η σύνδεση αποτύχει, έχετε ακόμα το παράθυρο του root για να το διορθώσετε.

4. Κλείστε τη σύνδεση root

Τώρα κλείστε την πόρτα. Δημιουργήστε ένα μικρό αρχείο drop-in αντί να επεξεργαστείτε την κύρια ρύθμιση:

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

Το sshd -t ελέγχει πρώτα τη σύνταξη. Χαλασμένη ρύθμιση συν reload είναι ο τρόπος που ο κόσμος καταλήγει να χρειάζεται την κονσόλα. Το PasswordAuthentication no έχει νόημα μόνο όταν η σύνδεση με κλειδί δουλεύει για τον νέο χρήστη — κάτι που μόλις δοκιμάσατε.

Ανοίξτε ακόμα ένα τερματικό και επιβεβαιώστε ότι το root απορρίπτεται και ο deploy μπαίνει κανονικά. Μετά κλείστε την παλιά συνεδρία root.

5. Προαιρετικά: sudo χωρίς κωδικό για αυτοματισμό

Αν ένα script deploy χρειάζεται sudo χωρίς ερώτηση, δώστε του ακριβώς αυτό και τίποτα παραπάνω:

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

Ειλικρινά, το NOPASSWD: ALL είναι δελεαστικό, αλλά σημαίνει ότι ένα κλεμμένο κλειδί ισοδυναμεί με root. Περιορίστε το στις εντολές που εκτελεί ο αυτοματισμός.

Αν κάτι πάει στραβά

Η web κονσόλα στον πίνακα δεν εξαρτάται ούτε από το SSH ούτε από το firewall. Μπείτε από εκεί, διορθώστε το αρχείο στο /etc/ssh/sshd_config.d/, κάντε reload, τέλος. Όλη τη διαδικασία ανάκτησης την περιγράφουμε στο πώς να ξαναμπείτε σε VPS που κλειδωθήκατε έξω.

Τι κάνετε μετά

Οι επιλογές πρόσβασης κάθε πλάνου βρίσκονται στην τεκμηρίωση πρόσβασης. Ακόμα κι ένα Nano των $3 αξίζει χρήστη χωρίς root — είναι η φθηνότερη αναβάθμιση ασφάλειας που υπάρχει.

Συχνές ερωτήσεις

Γιατί να μη συνεχίσω απλώς με root;

Ό,τι εκτελείτε ως root μπορεί να χαλάσει όλο το σύστημα, ακόμα και ένα τυπογραφικό λάθος. Τα bots δοκιμάζουν επίσης πρώτα το όνομα 'root', οπότε αν κλείσετε τη σύνδεση root φεύγει ο πιο συχνός στόχος. Ένας επώνυμος χρήστης με sudo σας δίνει μια παύση πριν από κάθε προνομιούχα εντολή και ένα αρχείο με ό,τι εκτελέστηκε.

Κι αν κλειδωθώ έξω;

Χρησιμοποιήστε την web κονσόλα στον πίνακα ελέγχου σας. Δουλεύει ακόμα κι όταν το SSH είναι χαλασμένο ή σας μπλοκάρει το firewall, οπότε μπορείτε να μπείτε και να διορθώσετε το sshd_config. Γι' αυτό και δοκιμάζετε τον νέο χρήστη πριν κλείσετε τη συνεδρία root.

Να επιτρέψω sudo χωρίς κωδικό;

Για προσωπικό λογαριασμό κρατήστε την ερώτηση κωδικού — είναι η τελευταία γραμμή άμυνας αν διαρρεύσει το SSH κλειδί σας. Το sudo χωρίς κωδικό είναι λογικό για ξεχωριστό χρήστη deploy που χρησιμοποιεί ο αυτοματισμός, περιορισμένο στις εντολές που πραγματικά χρειάζεται.

Η εντολή sudo δεν υπάρχει στον Debian server μου. Γιατί;

Τα ελάχιστα images του Debian δεν την περιλαμβάνουν πάντα. Εγκαταστήστε την ως root με 'apt install -y sudo' και μετά προσθέστε τον χρήστη σας στην ομάδα sudo.

Ποια θύρα SSH χρησιμοποιώ;

Αυτή που εμφανίζεται στον πίνακα ελέγχου. Τα πλάνα με αποκλειστική IP χρησιμοποιούν τη θύρα 22 στη δική σας IP· τα πλάνα NAT χρησιμοποιούν την προσωπική σας θύρα SSH.

Σχόλια

Δεν υπάρχουν ακόμη σχόλια. Γίνετε ο πρώτος.

Αφήστε ένα σχόλιο

Τα σχόλια ελέγχονται πριν εμφανιστούν.