Τι είναι το Reverse SSH Tunneling; (και πώς να το χρησιμοποιήσετε)

Χρειάζεστε SSH σε έναν μη προσβάσιμο υπολογιστή Linux; Ζητήστε το να σας καλέσει και, στη συνέχεια, ανοίξτε τη σύνδεση για να αποκτήσετε τη δική σας απομακρυσμένη συνεδρία SSH. Σας δείχνουμε πώς.

Πότε θέλετε να χρησιμοποιήσετε αντίστροφη διοχέτευση SSH

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

Ας δημιουργήσουμε μερικές ετικέτες. Ο υπολογιστής σας είναι ο τοπικός υπολογιστής επειδή βρίσκεται κοντά σας. Ο υπολογιστής στον οποίο πρόκειται να συνδεθείτε είναι ο απομακρυσμένος υπολογιστής επειδή βρίσκεται σε διαφορετική τοποθεσία από εσάς.

Για να γίνει διάκριση μεταξύ των τοπικών και απομακρυσμένων υπολογιστών που χρησιμοποιούνται σε αυτό το άρθρο, ο απομακρυσμένος υπολογιστής ονομάζεται “wdzwdz” και εκτελεί Ubuntu Linux (με μοβ παράθυρα τερματικού). Ο τοπικός υπολογιστής ονομάζεται “Sulaco” και εκτελεί Manjaro Linux (με κίτρινα παράθυρα τερματικού).

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

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

  Πώς να αποκτήσετε μια νέα εικόνα των Windows Spotlight για την οθόνη κλειδώματος στα Windows 10

Η απάντηση βρίσκεται στην αντίστροφη σήραγγα SSH.

Τι είναι το Reverse SSH Tunneling;

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

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

Και έτσι φτάνουμε στο όνομα “αντίστροφη σήραγγα SSH”.

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

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

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

Είναι πιο εύκολο να το ρυθμίσετε παρά να το περιγράψετε.

Χρήση SSH Reverse Tunneling

Το SSH θα είναι ήδη εγκατεστημένο στον υπολογιστή σας Linux, αλλά ίσως χρειαστεί να ξεκινήσετε τον δαίμονα SSH (sshd) εάν ο τοπικός υπολογιστής δεν έχει αποδεχτεί ποτέ συνδέσεις SSH στο παρελθόν.

sudo systemctl start sshd

Για να ξεκινά ο δαίμονας SSH κάθε φορά που επανεκκινείτε τον υπολογιστή σας, χρησιμοποιήστε αυτήν την εντολή:

sudo systemctl enable sshd

Στον απομακρυσμένο υπολογιστή, χρησιμοποιούμε την ακόλουθη εντολή.

  Πώς να χρησιμοποιήσετε τα κουμπιά Echo για τον έλεγχο των συσκευών Smarthome

Η επιλογή -R (αντίστροφη) λέει στο ssh ότι πρέπει να δημιουργηθούν νέες συνεδρίες SSH στον απομακρυσμένο υπολογιστή.
Το “43022:localhost:22” λέει στη ssh ότι τα αιτήματα σύνδεσης στη θύρα 43022 στον τοπικό υπολογιστή πρέπει να προωθηθούν στη θύρα 22 του απομακρυσμένου υπολογιστή. Η θύρα 43022 επιλέχθηκε επειδή είναι αναφέρεται ως μη κατανομή. Δεν είναι ειδικός αριθμός.
[email protected] είναι ο λογαριασμός χρήστη στον οποίο πρόκειται να συνδεθεί ο απομακρυσμένος υπολογιστής στον τοπικό υπολογιστή.

ssh -R 43022:localhost:22 [email protected]

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

Θα σας ζητηθεί ο κωδικός πρόσβασης του λογαριασμού που χρησιμοποιείτε για να συνδεθείτε στον τοπικό υπολογιστή.

Σημειώστε ότι όταν πραγματοποιηθεί η σύνδεση, η γραμμή εντολών αλλάζει από [email protected] προς το [email protected]

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

who

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

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

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

Ο απομακρυσμένος υπολογιστής ακούει στη θύρα 43022 στον τοπικό υπολογιστή. Έτσι—κάπως αντιδιαισθητικά—για να κάνουμε μια σύνδεση με τον απομακρυσμένο υπολογιστή, ζητάμε από το ssh να κάνει μια σύνδεση με τον τοπικό υπολογιστή, στη θύρα 43022. Αυτό το αίτημα σύνδεσης θα προωθηθεί στον απομακρυσμένο υπολογιστή.

ssh localhost -p 43022

Μας ζητείται ο κωδικός πρόσβασης του λογαριασμού χρήστη και, στη συνέχεια, συνδεόμαστε στον απομακρυσμένο υπολογιστή από τον τοπικό υπολογιστή. Ο υπολογιστής μας Manjaro λέει με χαρά, “Καλώς ήρθατε στο Ubuntu 18.04.2 LTS”.

  Τρόπος δημιουργίας κατακόρυφων σελίδων στο Microsoft Word

Σημειώστε ότι η γραμμή εντολών έχει αλλάξει από [email protected] προς το [email protected] Πετύχαμε τον στόχο μας να κάνουμε μια σύνδεση SSH με τον δυσπρόσιτο απομακρυσμένο υπολογιστή μας.

Χρήση SSH με πλήκτρα

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

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

ssh-keygen

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

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

Τα κλειδιά SSH θα δημιουργηθούν.

Πρέπει να μεταφέρουμε το δημόσιο κλειδί στον τοπικό υπολογιστή. Χρησιμοποιήστε αυτήν την εντολή:

ssh-copy-id [email protected]

Θα σας ζητηθεί ο κωδικός πρόσβασης για τον λογαριασμό χρήστη στον οποίο συνδέεστε, σε αυτήν την περίπτωση, [email protected]

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

Δεν είναι όλα τα τούνελ τρομακτικά

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