Skip to content
Λογότυπο GrCode Club σε μαύρο Λογότυπο GrCode Club σε λευκό GrCode Club

GrCode Club

Λογότυπο GrCode Club σε μαύρο Λογότυπο GrCode Club σε λευκό GrCode Club

GrCode Club

  • Αρχική
  • Προγραμματισμός
    • Developer
    • Web Development
    • Γλώσσες Προγραμματισμού
    • Docker
  • Δίκτυα
    • Βασικές Πληροφορίες
    • Πρωτόκολλα Δικτύων
    • Υπηρεσίες & Θύρες
    • Cloud Computing
  • Λειτουργικά Συστήματα
    • Βασικές Πληροφορίες
    • Linux: Οδηγός
    • Microsoft Windows
  • Κυβερνοασφάλεια
    • Βασικές Πληροφορίες
    • Κυβερνοεπιθέσεις
    • Εργαλεία Κυβερνοασφάλειας
  • Hardware
    • Βασικές Πληροφορίες
    • Εξαρτήματα Υπολογιστή
    • Οθόνες & Τηλεοράσεις
    • Υποστήριξη Υπολογιστή
    • Πιστοποίηση IP
  • Κινητά
    • Βασικές Πληροφορίες
    • Android
    • iPhone
  • Κοινότητα
    • Σύνδεση / Λογαριασμός
    • Μέλη
    • Γίνε Content Creator
    • Projects Μελών
    • Ξεκινήστε να Μαθαίνετε
  • Αρχική
  • Προγραμματισμός
    • Developer
    • Web Development
    • Γλώσσες Προγραμματισμού
    • Docker
  • Δίκτυα
    • Βασικές Πληροφορίες
    • Πρωτόκολλα Δικτύων
    • Υπηρεσίες & Θύρες
    • Cloud Computing
  • Λειτουργικά Συστήματα
    • Βασικές Πληροφορίες
    • Linux: Οδηγός
    • Microsoft Windows
  • Κυβερνοασφάλεια
    • Βασικές Πληροφορίες
    • Κυβερνοεπιθέσεις
    • Εργαλεία Κυβερνοασφάλειας
  • Hardware
    • Βασικές Πληροφορίες
    • Εξαρτήματα Υπολογιστή
    • Οθόνες & Τηλεοράσεις
    • Υποστήριξη Υπολογιστή
    • Πιστοποίηση IP
  • Κινητά
    • Βασικές Πληροφορίες
    • Android
    • iPhone
  • Κοινότητα
    • Σύνδεση / Λογαριασμός
    • Μέλη
    • Γίνε Content Creator
    • Projects Μελών
    • Ξεκινήστε να Μαθαίνετε

SSH και Απομακρυσμένη Διαχείριση στο Linux

Το SSH (Secure Shell) είναι πρωτόκολλο για ασφαλή απομακρυσμένη πρόσβαση και διαχείριση υπολογιστών μέσω δικτύου. Η επικοινωνία κρυπτογραφείται και μπορεί να χρησιμοποιηθεί για εκτέλεση εντολών, μεταφορά αρχείων και δημιουργία ασφαλών tunnels. Η συνηθισμένη θύρα είναι η TCP 22.

Εγκατάσταση OpenSSH Server

Σε Debian και Ubuntu εγκατάστησε τον OpenSSH Server και έλεγξε την υπηρεσία:

sudo apt update
sudo apt install openssh-server
sudo systemctl status ssh
sudo systemctl enable --now ssh

Σε ορισμένες διανομές η υπηρεσία ονομάζεται sshd αντί για ssh. Έλεγξε το όνομα της υπηρεσίας στη διανομή σου πριν εκτελέσεις εντολές διαχείρισης.

Σύνδεση σε απομακρυσμένο υπολογιστή

# Σύνδεση με username και IP ή hostname
ssh user@192.168.1.20

# Σύνδεση σε διαφορετική θύρα
ssh -p 2222 user@server.example.com

# Εκτέλεση μίας εντολής στον απομακρυσμένο server
ssh user@192.168.1.20 'hostnamectl'

Την πρώτη φορά που συνδέεσαι σε έναν server, το SSH εμφανίζει το host key fingerprint. Επιβεβαίωσέ το από αξιόπιστο κανάλι πριν αποδεχτείς το κλειδί. Μην αγνοείς προειδοποιήσεις για αλλαγή host key χωρίς να διερευνήσεις την αιτία.

Αυθεντικοποίηση με SSH keys

Η αυθεντικοποίηση με κλειδιά είναι προτιμότερη από την επαναλαμβανόμενη χρήση κωδικού. Δημιούργησε ένα ζεύγος Ed25519 και πρόσθεσε το δημόσιο κλειδί στον λογαριασμό του server:

# Δημιουργία κλειδιού
ssh-keygen -t ed25519 -C "user@device"

# Αντιγραφή δημόσιου κλειδιού στον server
ssh-copy-id user@192.168.1.20

# Προβολή του δημόσιου κλειδιού
cat ~/.ssh/id_ed25519.pub

Το ιδιωτικό κλειδί (id_ed25519) δεν πρέπει να κοινοποιείται ή να μεταφέρεται σε άλλους χρήστες. Προστάτεψέ το με passphrase και κατάλληλα δικαιώματα αρχείων:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_ed25519
chmod 644 ~/.ssh/id_ed25519.pub

SSH Agent

Το ssh-agent κρατά προσωρινά διαθέσιμα τα ξεκλειδωμένα ιδιωτικά κλειδιά, ώστε να μη χρειάζεται να πληκτρολογείς συνεχώς το passphrase:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
ssh-add -l

Ρύθμιση SSH client με config

Μπορείς να αποθηκεύσεις συχνές ρυθμίσεις στο αρχείο ~/.ssh/config, ώστε να συνδέεσαι με ένα σύντομο alias:

Host myserver
    HostName 192.168.1.20
    User user
    Port 22
    IdentityFile ~/.ssh/id_ed25519

Μετά τη ρύθμιση, χρησιμοποίησε:

ssh myserver

Μεταφορά αρχείων με SCP και SFTP

Το SCP αντιγράφει αρχεία μέσω SSH, ενώ το SFTP προσφέρει διαδραστική διαχείριση αρχείων μέσω του SSH File Transfer Protocol.

# Αποστολή αρχείου στον server
scp ./file.txt user@192.168.1.20:/home/user/

# Λήψη αρχείου από τον server
scp user@192.168.1.20:/home/user/file.txt .

# Αντιγραφή φακέλου αναδρομικά
scp -r ./project user@192.168.1.20:/home/user/

# Διαδραστική σύνδεση SFTP
sftp user@192.168.1.20

Βασικές εντολές μέσα στο SFTP:

pwd
ls
cd /remote/path
get remote-file.txt
put local-file.txt
mkdir uploads
exit

Συγχρονισμός με rsync μέσω SSH

Το rsync μεταφέρει μόνο τις αλλαγές που χρειάζονται και είναι χρήσιμο για επαναλαμβανόμενο συγχρονισμό φακέλων:

# Συγχρονισμός τοπικού φακέλου προς server
rsync -avz ./project/ user@192.168.1.20:/home/user/project/

# Συγχρονισμός από server προς τοπικό φάκελο
rsync -avz user@192.168.1.20:/home/user/project/ ./project/

Πρόσεξε την τελική κάθετο (/) στην πηγή: επηρεάζει αν θα αντιγραφεί ο ίδιος ο φάκελος ή το περιεχόμενό του.

SSH Port Forwarding (Tunneling)

Το SSH μπορεί να δημιουργήσει κρυπτογραφημένα tunnels για πρόσβαση σε υπηρεσίες που δεν εκτίθενται απευθείας στο δίκτυο.

# Local forwarding: τοπική θύρα 8080 προς υπηρεσία στον server
ssh -L 8080:127.0.0.1:80 user@192.168.1.20

# Remote forwarding: προώθηση τοπικής υπηρεσίας προς τον server
ssh -R 9000:127.0.0.1:3000 user@192.168.1.20

# Dynamic forwarding: τοπικό SOCKS proxy
ssh -D 1080 user@192.168.1.20

Για το local forwarding, άνοιξε τοπικά το http://127.0.0.1:8080. Η πρόσβαση περνά μέσα από την SSH σύνδεση. Χρησιμοποίησε forwarding μόνο όταν έχεις άδεια πρόσβασης στην αντίστοιχη υπηρεσία.

Έλεγχος και αντιμετώπιση προβλημάτων

# Αναλυτική έξοδος για διάγνωση σύνδεσης
ssh -v user@192.168.1.20

# Έλεγχος αν η TCP 22 είναι προσβάσιμη
nc -vz 192.168.1.20 22

# Κατάσταση υπηρεσίας στον server
sudo systemctl status ssh

# Πρόσφατα logs σε συστήματα με systemd
sudo journalctl -u ssh -n 50 --no-pager

Αν η σύνδεση αποτυγχάνει, έλεγξε τη διεύθυνση και τη θύρα, αν εκτελείται ο SSH server, τους κανόνες firewall, τα δικαιώματα του καταλόγου ~/.ssh και αν το δημόσιο κλειδί έχει προστεθεί σωστά στο authorized_keys.

Βασικές πρακτικές ασφάλειας SSH

  • Χρησιμοποίησε SSH keys με ισχυρό passphrase και προστάτευσε το ιδιωτικό κλειδί.
  • Διατήρησε ενημερωμένο το OpenSSH client και server.
  • Περιόρισε την πρόσβαση στη θύρα SSH με firewall ή VPN όπου είναι δυνατό.
  • Απενεργοποίησε την απευθείας σύνδεση ως root και προτίμησε προσωπικούς λογαριασμούς με sudo.
  • Απενεργοποίησε την αυθεντικοποίηση με password μόνο αφού επιβεβαιώσεις ότι λειτουργεί σωστά η πρόσβαση με κλειδί και έχεις εναλλακτική πρόσβαση διαχείρισης.
  • Μην αλλάζεις ρυθμίσεις SSH χωρίς να ελέγχεις τη σύνταξη και να διατηρείς ενεργή μια υπάρχουσα συνεδρία μέχρι να επιβεβαιώσεις τη νέα σύνδεση.

Σχετικοί οδηγοί

  • Δικτυακές Υπηρεσίες και Θύρες
  • FTP, FTPS και SFTP
  • Linux Terminal

SSH hardening για διαχειριστές Linux

Για server που εκτίθεται στο Internet, περιόρισε την πρόσβαση SSH σε απαραίτητους χρήστες και δίκτυα. Προτίμησε authentication με δημόσιο κλειδί, κράτησε ενημερωμένο το OpenSSH και έλεγξε τις ρυθμίσεις πριν κάνεις reload. Σε απομακρυσμένη σύνδεση διατήρησε ανοιχτή μια δεύτερη συνεδρία μέχρι να επιβεβαιώσεις ότι η νέα ρύθμιση λειτουργεί.

# Έλεγχος σύνταξης ρυθμίσεων sshd
sudo sshd -t

# Εμφάνιση ενεργών ρυθμίσεων
sudo sshd -T | less

# Έλεγχος κατάστασης υπηρεσίας
sudo systemctl status ssh

Οι ρυθμίσεις βρίσκονται συνήθως στο /etc/ssh/sshd_config και σε αρχεία /etc/ssh/sshd_config.d/. Η ακριβής υπηρεσία μπορεί να ονομάζεται ssh ή sshd, ανάλογα με τη διανομή.

SSH, SCP ή SFTP;

Το SSH παρέχει ασφαλή απομακρυσμένη πρόσβαση και tunneling. Το SCP αντιγράφει αρχεία μέσω SSH, ενώ το SFTP παρέχει διαδραστική μεταφορά και διαχείριση αρχείων. Για συγχρονισμό καταλόγων με επαναληπτική μεταφορά και δυνατότητα συνέχισης, το rsync μέσω SSH είναι συχνά καταλληλότερο.

Social Media

  • Facebook
  • X
  • Instagram
  • TikTok
  • YouTube
  • Linkedin
  • Discord
Email Επικοινωνίας

info@grcodeclub.gr

Για Τεχνικά Θέματα

support@grcodeclub.gr

Πολιτική Cookies (ΕΕ)

Πολιτική απορρήτου

Όροι και Προϋποθέσεις

GrCode Club by @dimitridedou
Διαχείριση Συγκατάθεσης
Για να παρέχουμε την καλύτερη εμπειρία, χρησιμοποιούμε τεχνολογίες όπως cookies για την αποθήκευση ή/και την πρόσβαση σε πληροφορίες συσκευών. Η συγκατάθεση για τις εν λόγω τεχνολογίες θα μας επιτρέψει να επεξεργαστούμε δεδομένα προσωπικού χαρακτήρα, όπως συμπεριφορά περιήγησης ή μοναδικά αναγνωριστικά σε αυτόν τον ιστότοπο. Η μη συγκατάθεση ή η ανάκληση της συγκατάθεσης, μπορεί να επηρεάσει αρνητικά ορισμένες λειτουργίες και δυνατότητες.
Λειτουργικά Πάντα ενεργό
Η τεχνική αποθήκευση ή πρόσβαση είναι απολύτως απαραίτητη για τον νόμιμο σκοπό της δυνατότητας χρήσης συγκεκριμένης υπηρεσίας που ζητείται ρητά από τον συνδρομητή ή τον χρήστη ή με αποκλειστικό σκοπό τη μετάδοση επικοινωνίας μέσω δικτύου ηλεκτρονικών επικοινωνιών.
Προτιμήσεις
Η τεχνική αποθήκευση ή πρόσβαση είναι απαραίτητη για τον νόμιμο σκοπό της αποθήκευσης προτιμήσεων που δεν ζητούνται από τον συνδρομητή ή τον χρήστη.
Στατιστικά
Η τεχνική αποθήκευση ή πρόσβαση που χρησιμοποιείται αποκλειστικά για στατιστικούς σκοπούς. Η τεχνική αποθήκευση ή πρόσβαση που χρησιμοποιείται αποκλειστικά για ανώνυμους στατιστικούς σκοπούς. Χωρίς κλήτευση, η εθελοντική συμμόρφωση εκ μέρους του Παρόχου Υπηρεσιών Διαδικτύου ή πρόσθετες καταγραφές από τρίτο μέρος, οι πληροφορίες που αποθηκεύονται ή ανακτώνται για το σκοπό αυτό από μόνες τους δεν μπορούν συνήθως να χρησιμοποιηθούν για την αναγνώρισή σας.
Εμπορικής Προώθησης
Η τεχνική αποθήκευση ή πρόσβαση απαιτείται για τη δημιουργία προφίλ χρηστών, για την αποστολή διαφημίσεων ή για την καταγραφή του χρήστη σε έναν ιστότοπο ή σε διάφορους ιστότοπους για παρόμοιους σκοπούς εμπορικής προώθησης.
  • Διαχείριση επιλογών
  • Διαχείριση υπηρεσιών
  • Manage {vendor_count} vendors
  • Διαβάστε περισσότερα για αυτούς τους σκοπούς
Προβολή προτιμήσεων
  • {title}
  • {title}
  • {title}