Πώς να εντοπίσετε σφάλματα στις συνδέσεις SSH

How Debug Ssh Connections



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

ΣΗΜΕΙΩΣΗ: Πριν ξεκινήσετε, βεβαιωθείτε ότι η συσκευή στην οποία θέλετε να συνδεθείτε είναι συνδεδεμένη και ότι το σφάλμα δεν είναι αποτέλεσμα της μη διαθέσιμης συσκευής.







Τεύχος 1: Η υπηρεσία SSH δεν εκτελείται

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



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



sudosystemctl κατάσταση sshd

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







Λύση

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

Χρησιμοποιήστε την παρακάτω εντολή για να ελέγξετε τα αρχεία καταγραφής υπηρεσιών.

λαβή 'sshd' /όπου/κούτσουρο/author.log

Χρησιμοποιήστε την παρακάτω εντολή για να ξεκινήσετε ή να σταματήσετε την υπηρεσία SSH χρησιμοποιώντας το systemd.

sudosystemctl εκκίνηση sshd

Τεύχος 2: SSH σε μη τυπική θύρα

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

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

[εκατοντάδες@centos8]$sudo netstat -ptln | λαβή ssh
tcp0 00.0.0.0:560.0.0.0:*ΑΚΟΥΩ1131/sshd
tcp60 0:::56:::*ΑΚΟΥΩ1131/sshd

Η παραπάνω έξοδος δείχνει σε ποια θύρα εκτελείται η υπηρεσία SSH. Σε αυτή την περίπτωση, είναι η θύρα 56.

Λύση

Για να επιλύσετε αυτό το ζήτημα, μπορείτε να χρησιμοποιήσετε τις πληροφορίες από το netstat για να καθορίσετε ρητά τη θύρα στην εντολή ssh ως:

sshόνομα χρήστη@ip 56

Τεύχος 3: Μια άλλη υπηρεσία που χρησιμοποιεί την ίδια θύρα

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

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

sudoπεριοδικό-tsshd

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

sshd[110611]: error: Σύνδεση στη θύρα80στις 0.0.0.0 απέτυχε: Η διεύθυνση είναι ήδησεχρήση

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

Λύση

Υπάρχουν διάφοροι τρόποι που μπορείτε να χρησιμοποιήσετε για να επιλύσετε αυτό το ζήτημα. Αυτά περιλαμβάνουν:

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

sudo νανο /και τα λοιπά/ssh/sshd_config
Λιμάνι3009

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

sudosystemctl διακοπή httpd
sudosystemctl απενεργοποιήστε το httpd

Τεύχος 4: Τείχος προστασίας

Εάν έχετε δοκιμάσει όλες τις παραπάνω μεθόδους και δεν έχετε ακόμη σύνδεση SSH, μπορείτε να προχωρήσετε στην επόμενη πιθανή αιτία του ζητήματος: Περιορισμοί τείχους προστασίας. Ανάλογα με τη μέθοδο τείχους προστασίας που χρησιμοποιείτε (UFW ή Iptables), πρέπει να διασφαλίσετε ότι το τείχος προστασίας επιτρέπει συνδέσεις SSH.

Λύση

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

sudoufw επιτρέψτε<ssh_port> /tcp

Μπορείτε επίσης να επαναφέρετε όλους τους κανόνες UFW και να ξεκινήσετε από την αρχή. Αυτό θα σας επιτρέψει να αντιμετωπίσετε τις συνδέσεις τείχους προστασίας από την αρχή.

sudoεπαναφορά ufw

Τεύχος 5: Απενεργοποιημένες συνδέσεις κωδικού πρόσβασης

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

Για να ελέγξετε εάν επιτρέπονται οι κωδικοί πρόσβασης, επιλέξτε τη ρύθμιση παραμέτρων ssh ως:

[εκατοντάδες@centos8]$sudo λαβήPasswordAuthentication/και τα λοιπά/ssh/sshd_config
#PasswordAuthentication ναι
PasswordAuthenticationΝαί
# Κωδικός ελέγχου ταυτότητας. Ανάλογα με τη διαμόρφωση του PAM,
# Έλεγχος ταυτότητας PAM, στη συνέχεια ενεργοποιήστε αυτήν τη ρύθμιση, αλλά ορίστε τον έλεγχο ταυτότητας με κωδικό πρόσβασης

Η παραπάνω έξοδος δείχνει ότι επιτρέπονται οι κωδικοί πρόσβασης.

Λύση

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

Πρώτον, εάν έχετε ορίσει την τιμή σε όχι, αλλάξτε την τιμή PasswordAuthentication σε ναι και επανεκκινήστε την υπηρεσία ssh.

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

https://linuxhint.com/find-ssh-public-key/

https://linuxhint.com/use-ssh-copy-id-command/

συμπέρασμα

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