Τι είναι το SSH και πώς λειτουργεί;

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

Οι υπολογιστές μιλούν μεταξύ τους μέσω δικτύων. Ως εκ τούτου, οι ερευνητές δικτύου όρισαν ένα σύνολο κανόνων για την επικοινωνία με άλλα μηχανήματα και άρχισαν να αναπτύσσουν πρωτόκολλα όπως το Telnet. χρησιμοποιώντας αυτό, ένας χρήστης μπορεί να αναλάβει τον έλεγχο ενός άλλου υπολογιστή.

Αλλά δεν είναι ασφαλή, δηλαδή, οποιοσδήποτε στη μέση του δικτύου μπορεί να υποκλέψει και να διαβάσει τα δεδομένα που μεταφέρονται. Στα μέσα της δεκαετίας του ’90, ένα πιο ασφαλές πρωτόκολλο με το όνομα ssh εισήχθη ως αξιόπιστος διάδοχος του πρωτοκόλλου telnet.

Εάν είστε προγραμματιστής λογισμικού ή διαχειριστής συστήματος που εργάζεστε σε έναν κλάδο, μπορεί να έχετε χρησιμοποιήσει ssh, τουλάχιστον μία φορά. Αν δεν το κάνατε, ας το μάθουμε τώρα, καθώς είναι μια από τις βασικές δεξιότητες που πρέπει να γνωρίζετε.

Τι είναι το SSH;

Το SSH ή το Secure Shell ή το Secure Socket Shell είναι ένα πρωτόκολλο δικτύου που μας βοηθά να έχουμε πρόσβαση και να επικοινωνούμε με ασφάλεια με απομακρυσμένα μηχανήματα (κυρίως απομακρυσμένους διακομιστές).

Παρέχει ισχυρή κρυπτογράφηση και χρησιμοποιείται ευρέως από διαχειριστές δικτύου και προγραμματιστές για τη διαχείριση απομακρυσμένων συστημάτων και εφαρμογών, την εκτέλεση εντολών, την κοινή χρήση αρχείων κ.λπ.

Ανάγκη SSH

Το SSH δημιουργήθηκε το 1995 για την επίλυση ζητημάτων ασφαλείας που αντιμετωπίζουν μη ασφαλή πρωτόκολλα απομακρυσμένης πρόσβασης όπως rlogin, rsh, Telnet.

Τώρα ας μιλήσουμε για το Telnet, το οποίο σημαίνει Teletype Network που αναπτύχθηκε το 1969. Είναι ένα απλό εργαλείο γραμμής εντολών που τρέχει στον υπολογιστή σας για πρόσβαση σε έναν απομακρυσμένο διακομιστή (οπουδήποτε βρίσκεται στον κόσμο). Και στείλτε εντολές που θα εκτελεστούν σε αυτόν τον διακομιστή, ακριβώς σαν να κάθεστε ακριβώς μπροστά από τον απομακρυσμένο διακομιστή (ακόμη και μίλια μακριά από τον διακομιστή). Το Telnet μεταδίδει και λαμβάνει μηνύματα σε απλό κείμενο μέσω δικτύου.

  Διασφάλιση ποιότητας έναντι ποιοτικού ελέγχου (QA vs QC): Διαφορές και ομοιότητες

Οι εντολές που θα εκτελούσατε θα μπορούσαν να είναι η εκτέλεση προγραμμάτων, η δημιουργία καταλόγων, η δημιουργία/διαγραφή/μεταφορά αρχείων, η έναρξη/διακοπή υπηρεσιών κ.λπ.

Το πρόβλημα με τη σύνδεση ενός άλλου μηχανήματος σε ένα δίκτυο είναι ότι τα δεδομένα που μεταδίδονται θα περάσουν από πολλά δίκτυα. Εν τω μεταξύ, ορισμένα από τα οποία μπορεί να είναι ανασφαλή και τα δεδομένα μετάδοσης θα μπορούσαν να υποκλαπούν, ενδεχομένως να τροποποιηθούν πριν φτάσουν στο επιδιωκόμενο μηχάνημα-στόχο.

Στις πρώτες μέρες, όπου η ασφάλεια δεν ήταν τόσο σημαντική, όλη η επικοινωνία γίνεται σε απλό κείμενο. Ως εκ τούτου, τα δεδομένα που μεταδίδονται μέσω του Διαδικτύου μεταξύ πελάτη και διακομιστή μπορούν να υποκλαπούν εύκολα. Και μπορεί να διαβαστεί καθώς τα μηνύματα δεν είναι κρυπτογραφημένα.

Επομένως, τα πρωτόκολλα απλού κειμένου είναι εξαιρετικά ανασφαλή και δεν χρησιμοποιούνται ποτέ για τη μετάδοση ευαίσθητων δεδομένων, όπως κωδικούς πρόσβασης, μυστικά, κ.λπ. Ως εκ τούτου, το SSH θεωρείται μια ασφαλής εναλλακτική λύση στα πρωτόκολλα δικτύου απομακρυσμένης πρόσβασης παλαιού τύπου.

Πώς λειτουργεί;

Το SSH χρησιμοποιεί μια αρχιτεκτονική πελάτη-διακομιστή για ασφαλή επικοινωνία μέσω του δικτύου συνδέοντας έναν πελάτη ssh με τον διακομιστή ssh. Από προεπιλογή, ο διακομιστής ssh ακούει την τυπική θύρα TCP 22 (μπορείτε να την αλλάξετε για καλύτερη ασφάλεια).

Χρησιμοποιεί μια τεχνική κρυπτογράφησης δημόσιου κλειδιού για τον έλεγχο ταυτότητας μεταξύ πελάτη και διακομιστή. Επιπλέον, το πρωτόκολλο χρησιμοποιεί ισχυρούς αλγόριθμους συμμετρικής κρυπτογράφησης και κατακερματισμού για την ανταλλαγή μηνυμάτων μεταξύ πελάτη και διακομιστή για να διασφαλίσει το απόρρητο και την ακεραιότητα των δεδομένων.

  8 Καλύτερο λογισμικό απομακρυσμένης επιφάνειας εργασίας για μικρές και μεσαίες επιχειρήσεις

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

Οι περισσότερες συνεδρίες SSH (μια περίοδος κατά την οποία έχουμε πρόσβαση στον απομακρυσμένο διακομιστή) θα έχουν μόνο τις ακόλουθες δύο λειτουργίες:

  • Αυθεντικοποίηση
  • Εκτέλεση εντολών

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

Και οι δύο δημοφιλείς τρόποι είναι:

Ο έλεγχος ταυτότητας βάσει κωδικού πρόσβασης είναι η προεπιλεγμένη μέθοδος που χρησιμοποιείται για τον έλεγχο ταυτότητας για OpenSSH εγκατεστημένους πελάτες. Είναι ο πιο βασικός έλεγχος ταυτότητας ssh αλλά όχι ο πιο ασφαλής.

Παρόλο που οι κωδικοί πρόσβασης αποστέλλονται στον διακομιστή με ασφάλεια, οι σύγχρονες επιθέσεις ωμής βίας ενδέχεται να παρακάμψουν τον έλεγχο ταυτότητας.

Ο έλεγχος ταυτότητας βάσει κλειδιού βελτιώνει ακόμη περισσότερο την ασφάλεια του συστήματος δημιουργώντας ζεύγη κλειδιών SSH, τα οποία αποδεικνύονται μια αξιόπιστη και ασφαλής εναλλακτική λύση.

Αφού ο διακομιστής ελέγξει την ταυτότητα του πελάτη με επιτυχία, δημιουργείται μια ασφαλής σύνδεση μεταξύ τους.

Πρόσβαση στον απομακρυσμένο διακομιστή με χρήση SSH

Εάν είστε χρήστης Mac/Linux, μπορείτε να χρησιμοποιήσετε απευθείας το τερματικό για να πληκτρολογήσετε και να εκτελέσετε εντολές ssh, καθώς το OpenSSH είναι ήδη εγκατεστημένο από προεπιλογή.

Εάν είστε χρήστης των Windows, πρέπει να εγκαταστήσετε έναν πελάτη εξομοιωτή τερματικού τρίτου κατασκευαστή για να εκτελέσετε εντολές ssh. Στόκος είναι ο πιο δημοφιλής πελάτης ssh για λειτουργικό σύστημα Windows.

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

  Πώς να προσαρμόσετε τις συντομεύσεις πληκτρολογίου στο Gnome Shell

Η σύνταξη για τη βασική εντολή ssh είναι:

$ ssh <user-name> @ <host> -p <port-no>

Το όνομα χρήστη είναι το όνομα χρήστη του απομακρυσμένου μηχανήματος που προσπαθούμε να συνδέσουμε (και όχι ο χρήστης στον τοπικό σας υπολογιστή) και ο κεντρικός υπολογιστής είναι είτε διεύθυνση IP είτε όνομα τομέα.

Ας δούμε ένα παράδειγμα σύνδεσης σε έναν απομακρυσμένο διακομιστή χρησιμοποιώντας το OverTheWire δικτυακός τόπος. Είναι ένας δωρεάν ιστότοπος wargame πρόκλησης.

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

Διαπιστευτήρια:

όνομα χρήστη και κωδικός πρόσβασης: bandit0
host & port: bandit.labs.overthewire.org, 2220

Όταν πληκτρολογείτε την ακόλουθη εντολή και πατάτε enter:

$ ssh [email protected] -p 2220

Θα σας ζητήσει τον κωδικό πρόσβασης για λόγους ελέγχου ταυτότητας. Τώρα πληκτρολογήστε τον κωδικό πρόσβασης και πατήστε enter:

Εάν ο κωδικός πρόσβασης που πληκτρολογήσατε είναι σωστός, έχετε συνδεθεί επιτυχώς στον απομακρυσμένο διακομιστή και το τερματικό σας θα μοιάζει με την παραπάνω εικόνα.

Τώρα μπορείτε να χρησιμοποιήσετε το τερματικό του απομακρυσμένου μηχανήματος για να πληκτρολογήσετε και να εκτελέσετε τις εντολές σας και να εκτελέσετε τις απαραίτητες λειτουργίες σας.

Όταν θέλετε να τερματίσετε τη συνεδρία ssh, πληκτρολογήστε την εντολή exit:

$ exit

Θα λάβετε ένα μήνυμα, “Η σύνδεση έκλεισε” όταν αποσυνδεθείτε επιτυχώς από τη συνεδρία ssh.

συμπέρασμα

Ο κύριος λόγος πίσω από τη δημοτικότητα του SSH είναι ότι ολόκληρη η επικοινωνία μεταξύ διακομιστή και πελάτη είναι κρυπτογραφημένη.

Οι περισσότεροι άνθρωποι υποθέτουν ότι η χρήση του ssh είναι περίπλοκη και η απόκτηση γνώσεων για το πώς λειτουργεί δεν είναι εύκολα κατανοητή, αλλά είναι πιο απλή από ό,τι νομίζετε. Τώρα έχετε μια βασική κατανόηση του SSH, πώς λειτουργεί, τις πτυχές ασφαλείας πίσω από αυτό και γιατί παίζει ζωτικό ρόλο στην επικοινωνία.

Στη συνέχεια, εξερευνήστε μερικούς από τους πόρους για να γίνετε Sysadmin.