Μάθετε τα Ins και Out of OpenSSH στον υπολογιστή σας Linux
Έχουμε εξαίρεσε τις αρετές του SSH πολλές φορές, τόσο για την ασφάλεια όσο και για την απομακρυσμένη πρόσβαση. Ας ρίξουμε μια ματιά στον ίδιο τον server, μερικές σημαντικές πτυχές "συντήρησης" και κάποιες ιδιορρυθμίες που μπορούν να προσθέσουν αναταραχή σε μια κατά τα άλλα ομαλή οδήγηση.
Ενώ έχουμε γράψει αυτόν τον οδηγό με το Linux, αυτό ισχύει και για το OpenSSH στο Mac OS X και τα Windows 7 μέσω του Cygwin.
Γιατί είναι ασφαλές
Έχουμε αναφέρει πολλές φορές πως ο SSH είναι ένας πολύ καλός τρόπος για ασφαλή σύνδεση και σήραγγα δεδομένων από το ένα σημείο στο άλλο. Ας ρίξουμε μια πολύ σύντομη ματιά στο πώς λειτουργούν τα πράγματα έτσι ώστε να έχετε μια καλύτερη ιδέα για το γιατί τα πράγματα μπορούν να πάνε περίεργα μερικές φορές.
Όταν αποφασίζουμε να ξεκινήσουμε μια σύνδεση με έναν άλλο υπολογιστή, χρησιμοποιούμε συχνά πρωτόκολλα με τα οποία είναι εύκολο να εργαστούμε. Telnet και FTP έρχονται στο μυαλό. Στέλνουμε πληροφορίες σε έναν απομακρυσμένο διακομιστή και στη συνέχεια λαμβάνουμε επιβεβαίωση για τη σύνδεσή μας. Προκειμένου να δημιουργηθεί κάποιος τύπος ασφάλειας, αυτά τα πρωτόκολλα χρησιμοποιούν συχνά συνδυασμούς ονόματος χρήστη και κωδικού πρόσβασης. Αυτό σημαίνει ότι είναι απόλυτα ασφαλείς, έτσι; Λανθασμένος!
Εάν σκεφτόμαστε τη διαδικασία σύνδεσης ως αλληλογραφία, τότε η χρήση FTP και Telnet και τα παρόμοια δεν είναι σαν να χρησιμοποιούμε τυπικούς φακέλους αλληλογραφίας. Είναι περισσότερο σαν να χρησιμοποιείτε καρτ-ποστάλ. Εάν κάποιος συμβαίνει να βγει στη μέση, μπορεί να δει όλες τις πληροφορίες, συμπεριλαμβανομένων των διευθύνσεων και των δύο ανταποκριτών και του ονόματος χρήστη και του κωδικού πρόσβασης που έχουν σταλεί. Στη συνέχεια, μπορούν να αλλάξουν το μήνυμα διατηρώντας τις πληροφορίες το ίδιο και να μιμηθούν έναν ανταποκριτή ή έναν άλλο. Αυτό είναι γνωστό ως επίθεση "άνθρωπος-στη-μέση", και όχι μόνο συμβιβάζει τον λογαριασμό σας, αλλά θέτει υπό αμφισβήτηση κάθε μήνυμα και αρχείο που ελήφθη. Δεν μπορείτε να είστε σίγουροι αν μιλάτε στον αποστολέα ή όχι και ακόμα κι αν είστε, δεν μπορείτε να είστε βέβαιοι ότι κανείς δεν κοιτάζει τα πάντα από το μεταξύ.
Τώρα, ας δούμε την κρυπτογράφηση SSL, το είδος που καθιστά το HTTP πιο ασφαλές. Εδώ έχουμε ένα ταχυδρομείο που χειρίζεται την αλληλογραφία, ποιος ελέγχει για να διαπιστώσει εάν ο παραλήπτης είναι αυτός που ισχυρίζεται ότι είναι και έχει νόμους που προστατεύουν την αλληλογραφία σας από την εξέταση. Είναι πιο ασφαλές σε γενικές γραμμές και η κεντρική αρχή - η Verisign είναι μία, για παράδειγμα HTTPS - διασφαλίζει ότι το άτομο που στέλνετε μηνύματα ηλεκτρονικού ταχυδρομείου ελέγχει. Το κάνουν αυτό μη επιτρέποντας τις κάρτες (μη κρυπτογραφημένα διαπιστευτήρια). αντί να αναθέτουν πραγματικούς φακέλους.
Τέλος, ας δούμε το SSH. Εδώ, η ρύθμιση είναι λίγο διαφορετική. Δεν έχουμε κεντρικό έλεγχο ταυτότητας εδώ, αλλά τα πράγματα είναι ακόμα ασφαλή. Αυτό συμβαίνει επειδή στέλνετε επιστολές σε κάποιον ο οποίος γνωρίζετε ήδη - ας πούμε, συζητώντας μαζί τους στο τηλέφωνο - και χρησιμοποιείτε κάποια πραγματικά φανταχτερά μαθηματικά για να υπογράψετε τον φάκελο σας. Το παραδίδετε στον αδελφό, τη φίλη, τον μπαμπά ή την κόρη σας για να το πάρετε στη διεύθυνση και μόνο εάν οι φανταστικές μαθηματικές αντιστοιχίες του παραλήπτη υποθέτουν ότι η διεύθυνση είναι αυτό που πρέπει να είναι. Στη συνέχεια, παίρνετε επιστολή πίσω, προστατεύεται επίσης από τα αδιάκριτα μάτια από αυτό το φοβερό μαθηματικά. Τέλος, στέλνετε τα διαπιστευτήριά σας σε έναν άλλο μυστικό αλγόριθμο-μαγεμένο φάκελο προς τον προορισμό. Αν τα μαθηματικά δεν ταιριάζουν, μπορούμε να υποθέσουμε ότι ο αρχικός παραλήπτης μετακινήθηκε και πρέπει να επιβεβαιώσουμε ξανά τη διεύθυνσή του.
Με την εξήγηση όσο είναι, νομίζουμε ότι θα το κόψουμε εκεί. Αν έχετε περισσότερες πληροφορίες, μπορείτε να συζητήσετε στα σχόλια, φυσικά. Προς το παρόν, όμως, ας δούμε το πιο συναφές χαρακτηριστικό του SSH, τον έλεγχο ταυτότητας του κεντρικού υπολογιστή.
Κλειδιά υποδοχής
Ο έλεγχος ταυτότητας κεντρικού υπολογιστή είναι ουσιαστικά το μέρος όπου κάποιος που εμπιστεύεστε παίρνει το φάκελο (σφραγισμένο με μαγικό μαθηματικό) και επιβεβαιώνει τη διεύθυνση του παραλήπτη σας. Πρόκειται για μια αρκετά λεπτομερή περιγραφή της διεύθυνσης και βασίζεται σε κάποια πολύπλοκα μαθηματικά που απλά θα παραλείψουμε δεξιά. Υπάρχουν μερικά σημαντικά πράγματα που πρέπει να ληφθούν από αυτό, όμως:
- Δεδομένου ότι δεν υπάρχει κεντρική αρχή, η πραγματική ασφάλεια βρίσκεται στο κλειδί του κεντρικού υπολογιστή, στα δημόσια κλειδιά και στα ιδιωτικά κλειδιά. (Αυτά τα δύο τελευταία κλειδιά έχουν διαμορφωθεί όταν σας δοθεί πρόσβαση στο σύστημα.)
- Συνήθως, όταν συνδέεστε σε άλλο υπολογιστή μέσω SSH, το κλειδί κεντρικού υπολογιστή αποθηκεύεται. Αυτό κάνει τις μελλοντικές ενέργειες γρηγορότερες (ή λιγότερο λεπτομερείς).
- Αν το κλειδί του κεντρικού υπολογιστή αλλάξει, πιθανότατα θα ειδοποιηθείτε και θα πρέπει να είστε επιφυλακτικοί!
Δεδομένου ότι το κλειδί κεντρικού υπολογιστή χρησιμοποιείται πριν από την επαλήθευση ταυτότητας για την εξακρίβωση της ταυτότητας του διακομιστή SSH, βεβαιωθείτε ότι έχετε ελέγξει το κλειδί πριν συνδεθείτε. Θα δείτε ένα παράθυρο διαλόγου επιβεβαίωσης όπως παρακάτω.
Δεν πρέπει να ανησυχείς, όμως! Συχνά, όταν η ασφάλεια είναι ανησυχητική, θα υπάρξει μια ειδική θέση που μπορεί να επιβεβαιωθεί το κλειδί του κεντρικού υπολογιστή (το αποτύπωμα ECDSA παραπάνω). Σε εξ ολοκλήρου σε απευθείας σύνδεση επιχειρήσεις, συχνά θα είναι σε ασφαλή σύνδεση μόνο site. Μπορεί να χρειαστεί να τηλεφωνήσετε στο τμήμα πληροφορικής (ή να επιλέξετε να!) Για να επιβεβαιώσετε αυτό το κλειδί μέσω του τηλεφώνου. Έχω ακούσει ακόμη και κάποια μέρη όπου το κλειδί είναι στο σήμα εργασίας σας ή στον ειδικό κατάλογο "Αριθμοί έκτακτης ανάγκης". Και, αν έχετε φυσική πρόσβαση στο μηχάνημα-στόχο, μπορείτε επίσης να ελέγξετε μόνοι σας!
Ελέγξτε το κλειδί κεντρικού υπολογιστή του συστήματός σας
Υπάρχουν 4 τύποι αλγορίθμων κρυπτογράφησης που χρησιμοποιούνται για την πραγματοποίηση κλειδιών, αλλά η προεπιλογή για OpenSSH από νωρίτερα αυτό το έτος είναι ECDSA (με κάποιους καλούς λόγους). Θα επικεντρωθούμε σε αυτό σήμερα. Ακολουθεί η εντολή που μπορείτε να εκτελέσετε στον εξυπηρετητή SSH στον οποίο έχετε πρόσβαση:
ssh-keygen -f /etc/ssh/ssh_host_ecdsa_key.pub -l
Η παραγωγή σας πρέπει να επιστρέψει κάτι τέτοιο:
256 ca: 62: ea: 7c: e4: 9e: 2e: α6: 94: 20: 11: db: 9c: 78: c3: 4c /etc/ssh/ssh_host_ecdsa_key.pub
Ο πρώτος αριθμός είναι το μήκος bit του κλειδιού, τότε είναι το ίδιο το κλειδί και τελικά έχετε το αρχείο στο οποίο είναι αποθηκευμένο. Συγκρίνετε το μεσαίο τμήμα με αυτό που βλέπετε όταν σας ζητηθεί να συνδεθείτε από απόσταση. Θα πρέπει να ταιριάζει, και όλοι είστε έτοιμοι. Εάν δεν συμβαίνει αυτό, τότε θα μπορούσε να συμβεί κάτι άλλο.
Μπορείτε να δείτε όλους τους κεντρικούς υπολογιστές στους οποίους έχετε συνδέσει μέσω του SSH, εξετάζοντας το αρχείο known_hosts. Συνήθως βρίσκεται σε:
~ / .ssh / known_hosts
Μπορείτε να το ανοίξετε σε οποιοδήποτε πρόγραμμα επεξεργασίας κειμένου. Αν κοιτάξετε, προσπαθήστε να δώσετε προσοχή στο πώς αποθηκεύονται τα κλειδιά. Αποθηκεύονται με το όνομα του κεντρικού υπολογιστή (ή διεύθυνση ιστού) και τη διεύθυνση IP του.
Αλλαγή κλειδιών κεντρικών υπολογιστών και προβλημάτων
Υπάρχουν μερικοί λόγοι για τους οποίους τα κλειδιά του κεντρικού υπολογιστή αλλάζουν ή δεν ταιριάζουν με αυτά που έχουν συνδεθεί στο αρχείο known_hosts.
- Το σύστημα επανεγκαταστάθηκε / επαναπροσδιορίστηκε.
- Τα κλειδιά του κεντρικού υπολογιστή μεταβλήθηκαν με το χέρι λόγω των πρωτοκόλλων ασφαλείας.
- Ο διακομιστής OpenSSH ενημερώθηκε και χρησιμοποιεί διαφορετικά πρότυπα λόγω ζητημάτων ασφαλείας.
- Η μεταβίβαση IP ή DNS άλλαξε. Αυτό σημαίνει συχνά ότι προσπαθείτε να αποκτήσετε πρόσβαση σε διαφορετικό υπολογιστή.
- Το σύστημα διακυβεύθηκε με κάποιο τρόπο, έτσι ώστε να αλλάξει το κλειδί κεντρικού υπολογιστή.
Το πιθανότερο είναι ότι το ζήτημα είναι ένα από τα τρία πρώτα και μπορείτε να αγνοήσετε την αλλαγή. Εάν η μίσθωση IP / DNS αλλάξει, τότε ενδέχεται να υπάρχει κάποιο πρόβλημα με το διακομιστή και μπορεί να σας οδηγήσει σε διαφορετικό μηχάνημα. Αν δεν είστε βέβαιοι για το ποιος είναι ο λόγος της αλλαγής τότε θα πρέπει πιθανώς να υποθέσετε ότι είναι ο τελευταίος στον κατάλογο.
Πώς το OpenSSH χειρίζεται άγνωστους κεντρικούς υπολογιστές
Το OpenSSH έχει μια ρύθμιση για το πώς χειρίζεται άγνωστους κεντρικούς υπολογιστές, που αντικατοπτρίζεται στη μεταβλητή "StrictHostKeyChecking" (χωρίς εισαγωγικά).
Ανάλογα με τη διαμόρφωσή σας, οι συνδέσεις SSH με άγνωστους κεντρικούς υπολογιστές (των οποίων τα κλειδιά δεν είναι ήδη στο αρχείο γνωστών φωνών σας) μπορούν να πάνε τρεις τρόποι.
- Το StrictHostKeyChecking έχει οριστεί σε όχι. Το OpenSSH θα συνδεθεί αυτόματα σε οποιοδήποτε διακομιστή SSH ανεξάρτητα από την κατάσταση κλειδιού κεντρικού υπολογιστή. Αυτό είναι ανασφαλές και δεν συνιστάται, εκτός εάν προσθέτετε ένα πλήθος ξενιστών μετά την επανεγκατάσταση του λειτουργικού σας συστήματος, μετά το οποίο θα το αλλάξετε.
- Το StrictHostKeyChecking έχει ρυθμιστεί να ρωτάει. Το OpenSSH θα σας δείξει νέα κλειδιά κεντρικού υπολογιστή και θα σας ζητήσει επιβεβαίωση πριν τα προσθέσετε. Θα αποτρέψει τις συνδέσεις από τη μετάβαση στα αλλαγμένα πλήκτρα κεντρικού υπολογιστή. Αυτή είναι η προεπιλογή.
- Το StrictHostKeyChecking έχει οριστεί σε ναι. Το αντίθετο του "όχι", αυτό θα σας εμποδίσει να συνδεθείτε με οποιονδήποτε κεντρικό υπολογιστή που δεν υπάρχει ήδη στο αρχείο known_hosts.
Μπορείτε να αλλάξετε εύκολα αυτή τη μεταβλητή στη γραμμή εντολών χρησιμοποιώντας το ακόλουθο παράδειγμα:
ssh -o 'StrictHostKeyChecking [επιλογή]' user @ host
Αντικαταστήστε την επιλογή με "όχι", "ask" ή "yes". Να έχετε υπόψη σας ότι υπάρχουν μοναδικά ευθεία εισαγωγικά γύρω από αυτήν τη μεταβλητή και τη ρύθμιση της. Αντικαταστήστε επίσης το χρήστη @ host με το όνομα χρήστη και το όνομα κεντρικού υπολογιστή του διακομιστή στον οποίο συνδέεστε. Για παράδειγμα:
ssh -o 'StrictHostKeyChecking ρωτήστε' [email protected]
Αποκλεισμένοι κεντρικοί υπολογιστές που οφείλονται σε αλλαγμένα κλειδιά
Εάν έχετε έναν διακομιστή που προσπαθείτε να αποκτήσετε πρόσβαση, ο οποίος έχει ήδη αλλάξει το κλειδί του, η προεπιλεγμένη ρύθμιση παραμέτρων του OpenSSH θα σας αποτρέψει από την πρόσβαση σε αυτό. Θα μπορούσατε να αλλάξετε την τιμή StrictHostKeyChecking για τον συγκεκριμένο κεντρικό υπολογιστή, αλλά αυτό δεν θα ήταν απολύτως, πλήρως, παρανοσιακά ασφαλές, έτσι; Αντ 'αυτού, μπορούμε απλά να αφαιρέσουμε την παράνομη τιμή από το αρχείο γνωστών_ομών μας.
Αυτό είναι σίγουρα ένα άσχημο πράγμα που έχετε στην οθόνη σας. Ευτυχώς, ο λόγος για αυτό ήταν ένα επανεγκατεστημένο λειτουργικό σύστημα. Έτσι, ας μεγεθύνουμε τη γραμμή που χρειαζόμαστε.
Πάμε εκεί. Δείτε πώς αναφέρει το αρχείο που πρέπει να επεξεργαστούμε; Μας δίνει ακόμη και τον αριθμό γραμμής! Ας ανοίξουμε το αρχείο στο Nano:
Εδώ είναι το κλειδί μας, στη γραμμή 1. Το μόνο που πρέπει να κάνουμε είναι να πατήσουμε Ctrl + K για να κόψετε ολόκληρη τη γραμμή.
Αυτό είναι πολύ καλύτερο! Έτσι, τώρα πατάμε Ctrl + O για να γράψουμε (αποθηκεύσουμε) το αρχείο, και στη συνέχεια Ctrl + X για έξοδο.
Τώρα έχουμε μια ωραία προτροπή αντ 'αυτού, στην οποία μπορούμε απλά να ανταποκριθούμε με "ναι".
Δημιουργία νέων πλήκτρων κεντρικού υπολογιστή
Για την καταγραφή, δεν υπάρχει πραγματικά λόγος για να αλλάξετε το κλειδί του κεντρικού υπολογιστή σας, αλλά αν βρεθεί ποτέ η ανάγκη, μπορείτε να το κάνετε εύκολα.
Πρώτα, μεταβείτε στον κατάλληλο κατάλογο συστήματος:
cd / etc / ssh /
Αυτό είναι συνήθως όπου τα πλήκτρα παγκόσμιου κεντρικού υπολογιστή είναι, αν και κάποια distros έχουν τα τοποθετήσει αλλού. Σε περίπτωση αμφιβολίας ελέγξτε την τεκμηρίωση σας!
Στη συνέχεια, θα διαγράψουμε όλα τα παλιά κλειδιά.
sudo rm / etc / ssh / ssh_host_ *
Εναλλακτικά, ίσως θέλετε να τα μετακινήσετε σε έναν ασφαλή κατάλογο backup. Απλά μια σκέψη!
Στη συνέχεια, μπορούμε να πούμε στο διακομιστή OpenSSH να επαναρυθμιστεί:
sudo dpkg - να ρυθμίσετε εκ νέου τον server openssh
Θα εμφανιστεί μια ερώτηση ενώ ο υπολογιστής σας δημιουργεί τα νέα κλειδιά. Ta-da!
Τώρα που ξέρετε πώς λειτουργεί SSH λίγο καλύτερα, θα πρέπει να είστε σε θέση να βγείτε από σκληρά σημεία. Η προειδοποίηση / σφάλμα του "Αναγνώριση απομακρυσμένου κεντρικού υπολογιστή έχει αλλάξει", κάτι που αποβάλλει πολλούς χρήστες, ακόμη και εκείνους που είναι εξοικειωμένοι με τη γραμμή εντολών.
.