Επιστροφή στο blog

Επισκόπηση SSH – Διακομιστές, Πελάτες και Κλειδιά SSH

Επισκόπηση SSH – Διακομιστές, Πελάτες και Κλειδιά SSH

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

Αυτός ο οδηγός σε στυλ cheat sheet παρουσιάζει μια επισκόπηση του SSH, μερικούς κοινούς τρόπους σύνδεσης με το SSH και διάφορες ρυθμίσεις παραμέτρων του SSH.

Επισκόπηση SSH

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

Η σύνδεση SSH ακολουθεί ένα μοντέλο πελάτη-διακομιστή. Το απομακρυσμένο σύστημα πρέπει να εκτελεί τον δαίμονα SSH για να δέχεται απομακρυσμένες συνδέσεις SSH. Ο δαίμονας SSH ακούει σε συγκεκριμένες θύρες, επαληθεύει τα αιτήματα σύνδεσης και δημιουργεί το κατάλληλο περιβάλλον όταν πληρούνται οι προϋποθέσεις.

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

  • Primary: 31.171.250.121

  • Secondary: 31.171.250.130

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

Έλεγχος ταυτότητας SSH

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

Αν και ο έλεγχος ταυτότητας με κωδικό πρόσβασης είναι πιο απλός στην κατανόηση και τη ρύθμιση, είναι εύκολο να γίνει αντικείμενο εκμετάλλευσης. Για παράδειγμα, αυτοματοποιημένα bot μπορούν να χρησιμοποιήσουν brute force για να παραβιάσουν ένα σύστημα. Τα κλειδιά SSH είναι κρυπτογραφικά κλειδιά. Κάθε κλειδί αποτελείται από δύο μέρη – ένα ιδιωτικό κλειδί και ένα δημόσιο κλειδί. Το δημόσιο κλειδί μπορεί να κοινοποιηθεί οπουδήποτε χωρίς καμία ανησυχία. Ωστόσο, το ιδιωτικό κλειδί πρέπει να παραμείνει προστατευμένο.

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

Δείτε πώς λειτουργεί η διαδικασία ελέγχου ταυτότητας:

  • Το σύστημα-πελάτης στέλνει ένα αίτημα σύνδεσης στο απομακρυσμένο σύστημα. Στέλνει επίσης ποιο κλειδί SSH θα χρησιμοποιήσει.

  • Το απομακρυσμένο σύστημα ελέγχει εάν το δημόσιο κλειδί περιλαμβάνεται στο authorized_keys.

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

  • Μόλις λάβει τη συμβολοσειρά, ο πελάτης θα την αποκρυπτογραφήσει.

  • Συνδυάζοντας τη συμβολοσειρά και το προηγουμένως συμφωνημένο ID συνεδρίας, δημιουργείται ένας κατακερματισμός MD5. Ο πελάτης στέλνει τον κατακερματισμό MD5 στο απομακρυσμένο σύστημα.

  • Το απομακρυσμένο σύστημα γνωρίζει την τυχαία συμβολοσειρά και το ID συνεδρίας. Εάν ο κατακερματισμός MD5 ταιριάζει, η σύνδεση επιτρέπεται.

Κλειδιά SSH

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

  • Δημιουργία ζεύγους κλειδιών SSH

Από προεπιλογή, ένα σύστημα Linux δεν έχει εγκατεστημένο κλειδί SSH. Ωστόσο, το σύστημα ενδέχεται να περιέχει κλειδιά SSH που έχουν δημιουργηθεί/εγκατασταθεί προηγουμένως. Υποθέτοντας ότι δεν υπάρχει προηγούμενο κλειδί SSH, πρέπει να δημιουργήσουμε ένα νέο ζεύγος δημόσιου και ιδιωτικού κλειδιού SSH. Το SSH υποστηρίζει πολλούς κρυπτογραφικούς αλγόριθμους για τη δημιουργία κλειδιών SSH, για παράδειγμα, RSA, DSA, ECDSA και EdDSA. Το RSA είναι ο προεπιλεγμένος και προτιμώμενος αλγόριθμος.

  • Δημιουργία ενός κανονικού ζεύγους κλειδιών RSA

Για να δημιουργήσετε ένα ζεύγος κλειδιών SSH, εκτελέστε την ακόλουθη εντολή:

SSH Keygen

Το τερματικό θα σας ρωτήσει πού να αποθηκεύσετε το ζεύγος κλειδιών. Όπως αναφέρθηκε, θα είναι ένα ζεύγος κλειδιών RSA. Εάν δεν εισαχθεί τιμή, τότε το SSH θα το αποθηκεύσει στην προεπιλεγμένη τοποθεσία /home/demo/.ssh/id_rsa.

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

Το τελικό αποτέλεσμα παρέχει τις ακόλουθες βασικές πληροφορίες:

  1. Την τοποθεσία του ιδιωτικού κλειδιού ( /root/.ssh/id_rsa). Δεν πρέπει ποτέ να κοινοποιείται.

  2. Την τοποθεσία του δημόσιου κλειδιού ( /root/.ssh/id_rsa.pub). Είναι ασφαλές να το μοιραστείτε με οποιονδήποτε.

  3. Το αποτύπωμα του κλειδιού.

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

  • Δημιουργία ζεύγους κλειδιών RSA με διαφορετικά bit

Από προεπιλογή, τα κλειδιά SSH είναι 2048 bit. Για λόγους ασφαλείας, αυτό θεωρείται αρκετά καλό. Ωστόσο, μπορούμε να ορίσουμε χειροκίνητα τη χρήση διαφορετικού αριθμού bit. Όσο υψηλότερη είναι η τιμή των bit, τόσο ισχυρότερο είναι το κλειδί.

Εκτελέστε την ακόλουθη εντολή για να δημιουργήσετε ένα ζεύγος κλειδιών SSH 4096 bit. Οι περισσότεροι διακομιστές υποστηρίζουν κλειδιά SSH 4096 bit. Εάν το κλειδί είναι πολύ μεγάλο, ενδέχεται να μην γίνει δεκτό για σκοπούς προστασίας από DDoS:

SSH Keygen with bitsΕπειδή είχαμε ήδη δημιουργήσει ένα ζεύγος κλειδιών, το SSH θα ρωτήσει αν θέλετε να αντικαταστήσετε το προηγούμενο. Η υπόλοιπη διαδικασία είναι η ίδια με τη δημιουργία ενός κανονικού ζεύγους κλειδιών.

  • Αλλαγή της συνθηματικής φράσης του ιδιωτικού κλειδιού

Μπορούμε να αλλάξουμε τη συνθηματική φράση του ιδιωτικού κλειδιού. Η διαδικασία απαιτεί να γνωρίζετε την τρέχουσα συνθηματική φράση. Για να αλλάξετε τη συνθηματική φράση, εκτελέστε την ακόλουθη εντολή:

SSH Keygen Password Change

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

  • Εμφάνιση αποτυπώματος κλειδιού SSH

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

SSH Key Fingerprint

Εισαγάγετε την τοποθεσία του κλειδιού. Πατήστε Enter εάν το κλειδί είναι αποθηκευμένο στην προεπιλεγμένη τοποθεσία.

Αντιγραφή του δημόσιου κλειδιού

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

  • Χρήση του ssh-copy-id

Το ssh-copy-id παρέχεται ως μέρος του πακέτου OpenSSH. Είναι ο προεπιλεσμένος τρόπος αντιγραφής του δημόσιου κλειδιού SSH. Είναι απλό και εύκολο στη χρήση. Εκτελέστε την ακόλουθη εντολή για να μεταφέρετε ένα αντίγραφο του δημόσιου κλειδιού:

SSH Copy ID

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

  • Χρήση σύνδεσης SSH

Εάν η χρήση του εργαλείου ssh-copy-id δεν είναι διαθέσιμη, αλλά ο κύριος διακομιστής μπορεί να συνδεθεί στον δευτερεύοντα διακομιστή χρησιμοποιώντας SSH, τότε μπορούμε να χρησιμοποιήσουμε ένα διαφορετικό κόλπο για να αντιγράψουμε το κλειδί. Αυτό γίνεται διοχετεύοντας το περιεχόμενο του δημόσιου κλειδιού μέσω της εντολής SSH στην απομακρυσμένη πλευρά. Σημειώστε ότι εάν ο κατάλογος ~/.ssh δεν υπάρχει στο απομακρυσμένο σύστημα, ενδέχεται να μην λειτουργήσει:

SSH Copy

  • Μη αυτόματη αντιγραφή

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

Στον απομακρυσμένο διακομιστή, τοποθετήστε το κλειδί στην κατάλληλη τοποθεσία:

Χρήση SSH

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

  • Σύνδεση σε απομακρυσμένο σύστημα

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

SSH Login Without User

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

SSH Login with User

Αν είναι η πρώτη φορά που συνδέεστε στον διακομιστή, το SSH ενδέχεται να εμφανίσει μια προειδοποίηση. Πληκτρολογήστε yes για να συνεχίσετε τη σύνδεση. Αν ο απομακρυσμένος λογαριασμός προστατεύεται με κωδικό πρόσβασης, θα πρέπει να εισαγάγετε τον κωδικό πρόσβασης. Αν το κλειδί SSH προστατεύεται με συνθηματικό (passphrase), θα πρέπει επίσης να εισαγάγετε το συνθηματικό.

  • Σύνδεση σε διαφορετική θύρα

Από προεπιλογή, το SSH εκτελείται στη θύρα 22. Ο πελάτης SSH θα υποθέσει την προεπιλεγμένη τιμή θύρας κατά τη σύνδεση στο απομακρυσμένο σύστημα. Ωστόσο, εάν το απομακρυσμένο σύστημα ακούει σε διαφορετική θύρα για την κίνηση SSH, δεν θα λειτουργήσει. Σε μια τέτοια περίπτωση, πρέπει να δηλώσουμε χειροκίνητα τον αριθμό της θύρας. Για να δηλώσετε τη συγκεκριμένη θύρα, χρησιμοποιήστε τη σημαία -p :

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

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

  • Εκτέλεση εντολών στον απομακρυσμένο διακομιστή

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

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

  • Προσθήκη κλειδιού σε έναν πράκτορα SSH (SSH agent)

Αν το κλειδί SSH έχει συνθηματικό, τότε κάθε φορά που συνδέεστε στο απομακρυσμένο σύστημα, θα πρέπει να εισάγετε το συνθηματικό. Η επανειλημμένη εισαγωγή του είναι αντιπαραγωγική. Μπορούμε να αφήσουμε έναν πράκτορα SSH (SSH agent) να το φροντίσει. Είναι ένα μικρό βοηθητικό πρόγραμμα που αποθηκεύει το ιδιωτικό κλειδί αφού εισαγάγετε το συνθηματικό. Το ιδιωτικό κλειδί θα είναι διαθέσιμο κατά τη διάρκεια της συνεδρίας του τερματικού. Για να εκκινήσετε τον πράκτορα SSH, εκτελέστε την ακόλουθη εντολή:

SSH Agent

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

SSH Add

Εισαγάγετε το συνθηματικό για να ολοκληρώσετε τη διαδικασία.

  • Προώθηση διαπιστευτηρίων SSH

Μπορούμε επίσης να ρυθμίσουμε το SSH ώστε να συνδέεται από έναν διακομιστή σε έναν άλλο χωρίς κωδικό πρόσβασης. Αυτό μπορεί να είναι αρκετά αποτελεσματικό, ειδικά όταν εργάζεστε με πολλούς απομακρυσμένους διακομιστές. Για να το επιτύχουμε, πρέπει να προωθήσουμε τα διαπιστευτήρια SSH. Η προώθηση διαπιστευτηρίων SSH απαιτεί ο απομακρυσμένος διακομιστής να είναι ρυθμισμένος ώστε να δέχεται σύνδεση από το τοπικό μηχάνημα/διακομιστή. Στη συνέχεια, το μόνο που χρειάζεται είναι να συνδεθείτε στον πρώτο διακομιστή χρησιμοποιώντας τη σημαία -A . Προωθεί τα διαπιστευτήριά σας στους διακομιστές για την τρέχουσα συνεδρία:

Ρυθμίσεις απομακρυσμένου διακομιστή

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

  • Απενεργοποίηση ελέγχου ταυτότητας με κωδικό πρόσβασης

Αν τα κλειδιά SSH έχουν ρυθμιστεί και η σύνδεση SSH λειτουργεί όπως αναμένεται, τότε είναι ασφαλές να απενεργοποιήσετε τον έλεγχο ταυτότητας με κωδικό πρόσβασης. Η ακόλουθη ρύθμιση θα σταματήσει να ζητά κωδικό πρόσβασης όταν οποιοσδήποτε χρήστης συνδέεται μέσω SSH. Στον απομακρυσμένο διακομιστή, ανοίξτε το sshd_config αρχείο με root/sudo δικαιώματα:

Στη συνέχεια, αναζητήστε την καταχώριση PasswordAuthentication. Αν η γραμμή είναι σε σχόλιο, καταργήστε το σχόλιο. Αλλάξτε την τιμή σε no:

Password Authentication Change

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

Αν το σύστημα είναι CentOS/Fedora, χρησιμοποιήστε αντ' αυτού την ακόλουθη εντολή:

  • Αλλαγή της θύρας SSH

Όπως αναφέρθηκε προηγουμένως, το SSH χρησιμοποιεί τη θύρα 22 για την ανταλλαγή κίνησης SSH. Ωστόσο, σύμφωνα με ορισμένους διαχειριστές συστημάτων, είναι προτιμότερο να ορίσετε μια διαφορετική θύρα για το SSH. Αυτό μπορεί να βοηθήσει κατά των αυτοματοποιημένων bots που κατακλύζουν τη θύρα. Για να αλλάξετε τη θύρα στην οποία ακούει το SSH, ανοίξτε το sshd_config αρχείο:

Αναζητήστε την καταχώριση Port. Αν είναι σε σχόλιο, καταργήστε το σχόλιο. Στη συνέχεια, αλλάξτε την τιμή σε μια διαφορετική τιμή. Η τιμή της θύρας είναι ένας μη προσημασμένος ακέραιος 16-bit (0-65535):

SSH Port Change

Αποθηκεύστε το αρχείο και κλείστε τον επεξεργαστή. Για να εφαρμόσετε την αλλαγή, επανεκκινήστε τον δαίμονα SSH:

Σε CentOS/Fedora, εκτελέστε αντ' αυτού την ακόλουθη εντολή:

  • Περιορισμός χρηστών

Μπορούμε να ρυθμίσουμε ποιοι λογαριασμοί χρηστών μπορούν να συνδεθούν χρησιμοποιώντας SSH. Αυτό περιλαμβάνει επίσης την τροποποίηση του αρχείου sshd_config . Ανοίξτε το αρχείο με δικαιώματα sudo/root:

Αναζητήστε την καταχώριση AllowUsers. Προσθέστε τους επιτρεπόμενους χρήστες:

User Limitation

Αποθηκεύστε το αρχείο και κλείστε τον επεξεργαστή. Επανεκκινήστε τον δαίμονα SSH για να εφαρμοστούν οι αλλαγές:

Σε CentOS/Fedora, εκτελέστε αντ' αυτού την ακόλουθη εντολή:

  • Περιορισμός ομάδων

Παρόμοια με τον περιορισμό χρηστών, μπορούμε επίσης να καθορίσουμε ποια ομάδα χρηστών μπορεί να συνδεθεί στο σύστημα χρησιμοποιώντας SSH. Ανοίξτε το αρχείο sshd_config :

Χρησιμοποιήστε την καταχώριση AllowGroups για να προσθέσετε μια συγκεκριμένη ομάδα χρηστών που μπορεί να χρησιμοποιήσει το SSH:

Allow User Groups

Αποθηκεύστε το αρχείο και κλείστε τον επεξεργαστή. Επανεκκινήστε τον δαίμονα SSH για να εφαρμοστούν οι αλλαγές:

Για CentOS/Fedora, εκτελέστε αντ' αυτού την ακόλουθη εντολή:

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

  • Απενεργοποίηση σύνδεσης root

Εάν έχετε πρόσβαση σε έναν χρήστη με δικαιώματα sudo, τότε συνιστάται να απενεργοποιήσετε τη σύνδεση root μέσω SSH. Ανοίξτε το αρχείο sshd_config :

Αλλάξτε την τιμή της καταχώρισης PermitRootLogin σε no:

Disable Root Login

Αποθηκεύστε το αρχείο και κλείστε τον επεξεργαστή. Επανεκκινήστε τον δαίμονα SSH για να εφαρμοστεί η αλλαγή:

Σε CentOS/Fedora, εκτελέστε αντ' αυτού την ακόλουθη εντολή:

  • Προώθηση προβολών εφαρμογών X

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

Αλλάξτε την τιμή της οδηγίας X11Forwarding σε yes:

X11 Forwarding

Αποθηκεύστε το αρχείο και κλείστε τον επεξεργαστή. Επανεκκινήστε τον δαίμονα SSH για να τεθεί σε ισχύ η αλλαγή:

Σε CentOS/Fedora, εκτελέστε την ακόλουθη εντολή αντ' αυτού:

Ρυθμίσεις Πελάτη

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

  • Πληροφορίες σύνδεσης ειδικά για τον διακομιστή

Στο τοπικό σύστημα, μπορούμε να ορίσουμε τις λεπτομέρειες μιας απομακρυσμένης σύνδεσης. Όλες οι πληροφορίες αποθηκεύονται στο αρχείο ρυθμίσεων που βρίσκεται στο ~/.ssh/config:

Κάθε μπλοκ απομακρυσμένου συστήματος υποδηλώνεται από τη λέξη-κλειδί Host ακολουθούμενη από ένα ψευδώνυμο. Όλες οι οδηγίες που αφορούν το συγκεκριμένο σύστημα μπαίνουν εδώ. Κατά τη σύνδεση στο απομακρυσμένο σύστημα, το SSH θα τις εφαρμόσει αυτόματα. Για μια πλήρη, σε βάθος εξήγηση των ρυθμίσεων, δείτε τη σελίδα man:

SSH Manual

Η καταχώριση για μια απομακρυσμένη σύνδεση θα ακολουθεί την εξής δομή:

  • Λήξη χρονικού ορίου σύνδεσης

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

Ανοίξτε το τοπικό αρχείο ρυθμίσεων:

Κάτω από την καταχώριση της απομακρυσμένης σύνδεσης, προσθέστε την οδηγία ServerAliveInterval ακολουθούμενη από το μεσοδιάστημα των πακέτων σε δευτερόλεπτα:

Server Alive Interval

Αποθηκεύστε το αρχείο και κλείστε τον επεξεργαστή.

  • Απενεργοποίηση ελέγχου κεντρικού υπολογιστή

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

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

Κάτω από την ενότητα του απομακρυσμένου κεντρικού υπολογιστή, προσθέστε τις ακόλουθες οδηγίες:

Disabling Host Checking

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

  • Πολυπλεξία SSH μέσω μίας μόνο σύνδεσης TCP

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

Μπορούμε να ορίσουμε χειροκίνητα μια σύνδεση πολυπλεξίας ή να αφήσουμε το SSH να τη χρησιμοποιεί όποτε είναι διαθέσιμη. Εδώ, θα ρυθμίσουμε το SSH να ακολουθήσει τη δεύτερη οδό. Ανοίξτε το αρχείο ρυθμίσεων SSH:

Προσθέστε έναν ορισμό κεντρικού υπολογιστή με χαρακτήρα μπαλαντέρ (wildcard) στην κορυφή του αρχείου. Αυτό διασφαλίζει ότι το επόμενο σύνολο οδηγιών θα εφαρμοστεί σε όλες τις απομακρυσμένες συνδέσεις. Προσθέστε τις ακόλουθες οδηγίες:

Multiplexing SSH

Η πρώτη οδηγία λέει στο SSH να χρησιμοποιεί αυτόματα την πολυπλεξία όποτε είναι διαθέσιμη. Η δεύτερη οδηγία καθορίζει τη διαδρομή προς την υποδοχή ελέγχου (control socket). Αυτή η υποδοχή θα δημιουργηθεί όταν δημιουργηθεί η πρώτη συνεδρία. Οι επόμενες συνεδρίες θα ακολουθήσουν αυτήν την υποδοχή.

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

Τέλος, η πολυπλεξία θα πρέπει να είναι ενεργή.

Κωδικοί διαφυγής SSH

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

  • Αναγκαστική αποσύνδεση

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

Πατήστε Enter μερικές φορές. Στη συνέχεια, εισαγάγετε την ακόλουθη εντολή:

Forcing Disconnects

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

  • Συνεδρία SSH στο παρασκήνιο

Μπορούμε επίσης να θέσουμε μια συνεδρία SSH στο παρασκήνιο. Όταν μεταφερθεί στο παρασκήνιο, θα επιστρέψετε στην κανονική συνεδρία κελύφους. Μόλις ολοκληρωθεί η εργασία σας, μπορείτε να επιστρέψετε ξανά στο κέλυφος SSH. Σημειώστε ότι πρέπει να έχετε μια σωστή ρύθμιση ορίου χρόνου για να αποφύγετε τη λήξη του χρονικού ορίου ενώ η συνεδρία SSH παραμένει στο παρασκήνιο. Για να θέσετε μια συνεδρία SSH στο παρασκήνιο, εισαγάγετε τον χαρακτήρα ελέγχου ακολουθούμενο από Ctrl + Z:

SSH Background Session

Εάν ήταν η πιο πρόσφατη εργασία σας στο παρασκήνιο, τότε μπορείτε να την επανενεργοποιήσετε χρησιμοποιώντας την ακόλουθη εντολή:

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

Jobs

Για να φέρετε την επιθυμητή εργασία στο προσκήνιο, σημειώστε την τιμή της εργασίας από την πρώτη στήλη. Στη συνέχεια, εκτελέστε την ακόλουθη εντολή:

Job Foreground

  • Αλλαγή της ρύθμισης προώθησης θυρών

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

Για να αποκτήσετε πρόσβαση στη διεπαφή γραμμής εντολών του SSH, εκτελέστε την εντολή:

SSH Command Line Interface

Για να δείτε τη λίστα με τις διαθέσιμες επιλογές, εισαγάγετε την ακόλουθη εντολή:

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

Τώρα, εκτελέστε ξανά την εντολή -h:

SSH Command Line Help

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

Τελικές Σκέψεις

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

Καλή υπολογιστική!

author

Pranay Kapgate

Συγγραφέας · CloudSigma

Ο Preslav Dobrev είναι Δημιουργικός Σχεδιαστής στην CloudSigma, με εστίαση στη συνεπή επιχειρηματική ταυτότητα μέσω παραδοσιακών και καινοτόμων καναλιών μάρκετινγκ. Διαθέτει την ικανότητα να συνδυάζει το καλλιτεχνικό όραμα με το στρατηγικό μάρκετινγκ για τη δημιουργία εντυπωσιακών αφηγήσεων επωνυμίας.

Σχόλια

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