Τι είναι το SSH;
Το SSH σημαίνει Secure Shell. Με το SSH μπορείτε να έχετε πρόσβαση σε απομακρυσμένα μηχανήματα με ασφαλή τρόπο, καθώς η σύνδεση είναι κρυπτογραφημένη. Με την εντολή ssh από το τερματικό του Linux, μπορούμε να συνδεθούμε σε απομακρυσμένους διακομιστές Linux και να εργαστούμε σαν να ήταν ο υπολογιστής μας. Στο τέλος αυτού του οδηγού, θα πρέπει να έχετε πλήρη κατανόηση του τρόπου χρήσης του SSH για τη σύνδεση σε έναν απομακρυσμένο διακομιστή στο Ubuntu.
Σύνταξη
Η σύνταξη είναι ο κανόνας για το πώς μπορείτε να χρησιμοποιήσετε την εντολή ssh. Μπορείτε να αναδιατάξετε τη σύνταξη, αλλά πρέπει να ακολουθηθεί μια άμεση μορφή. Παρακάτω υπάρχει ένα παράδειγμα σύνταξης για τη χρήση της εντολής ssh:
|
1 |
ssh remote_host |
Το όνομα τομέα ή η διεύθυνση IP στην οποία θέλετε να συνδεθείτε είναι το remote_host, όπως φαίνεται στην παραπάνω εντολή. Αυτή η σύνταξη προϋποθέτει ότι το όνομα χρήστη σας στο απομακρυσμένο σύστημα και στο τοπικό σας σύστημα είναι το ίδιο. Ωστόσο, σε περίπτωση που τα ονόματα χρήστη δεν είναι τα ίδια, μπορείτε να το δηλώσετε με αυτήν την εντολή:
|
1 |
ssh remote_username@remote_host |
Θα πρέπει να επαληθεύσετε την ταυτότητά σας παρέχοντας έναν κωδικό πρόσβασης αμέσως μόλις συνδεθείτε στον διακομιστή. Πληκτρολογήστε την εντολή exit για να επιστρέψετε στην τοπική σας συνεδρία.
Πώς να ρυθμίσετε το SSH
Το κύριο αρχείο ρυθμίσεων του sshd στο Ubuntu βρίσκεται στο /etc/ssh/sshd_config. Εάν αλλάξετε τις ρυθμίσεις του SSH, οι ρυθμίσεις του διακομιστή SSHD θα αλλάξουν αυτόματα. Πριν από οποιαδήποτε ρύθμιση, βεβαιωθείτε ότι έχετε δημιουργήσει αντίγραφο ασφαλείας της τρέχουσας έκδοσης του αρχείου χρησιμοποιώντας αυτήν την εντολή:
|
1 |
sudo cp /etc/ssh/sshd_config{,.bak} |
Χρησιμοποιήστε έναν επεξεργαστή κειμένου για να το ανοίξετε:
|
1 |
sudo nano /etc/ssh/sshd_config |
Θα πρέπει να αφήσετε τις περισσότερες παραμέτρους ως έχουν σε αυτό το αρχείο. Ωστόσο, υπάρχουν μερικά πράγματα που πρέπει να προσέξετε:
|
1 |
Port 22 |
Οι δηλώσεις θύρας υποδεικνύουν τη θύρα στην οποία ο διακομιστής SSHD περιμένει συνδέσεις. Η προεπιλογή είναι 22. Εκτός εάν υπάρχουν συγκεκριμένοι λόγοι, δεν χρειάζεται να αλλάξετε αυτήν τη ρύθμιση:
|
1 2 3 |
HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key HostKey /etc/ssh/ssh_host_ecdsa_key |
Η δήλωση κλειδιού κεντρικού υπολογιστή υποδεικνύει πού βρίσκεται το καθολικό κλειδί κεντρικού υπολογιστή:
|
1 2 |
SyslogFacility AUTH LogLevel INFO |
Το επίπεδο των καταγραφών που πρέπει να πραγματοποιούνται υποδεικνύεται με αυτά τα δύο στοιχεία. Εάν αντιμετωπίζετε προβλήματα με τη χρήση του SSH, ένας εξαιρετικός τρόπος για να εντοπίσετε το πρόβλημα είναι να αυξήσετε τον αριθμό των καταγραφών:
|
1 2 3 |
LoginGraceTime 120 PermitRootLogin yes StrictModes yes |
Αυτές οι επιλογές ορίζουν ορισμένες πληροφορίες για τη σύνδεση, ώστε να αποτρέπεται η μη εξουσιοδοτημένη σύνδεση όταν τα αρχεία ρυθμίσεων δεν είναι ασφαλή:
|
1 2 |
X11Forwarding yes X11DisplayOffset 10 |
Αυτές οι ρυθμίσεις παραμέτρων αναφέρονται ως λειτουργίες προώθησης X11. Με αυτόν τον τρόπο, μπορείτε να εμφανίσετε το γραφικό περιβάλλον του απομακρυσμένου συστήματος στο τοπικό σύστημα. Πρέπει να ενεργοποιήσετε αυτήν την επιλογή στον διακομιστή κατά τη σύνδεση με την επιλογή -X στον πελάτη SSH.
Αφού κάνετε τις αλλαγές, αποθηκεύστε το αρχείο και κλείστε το πατώντας CTRL-X και Y και στη συνέχεια πατήστε Enter. Εάν αλλάξετε τις ρυθμίσεις στο / etc / ssh / sshd_config, πρέπει να επανεκκινήσετε τον διακομιστή sshd για να εφαρμοστεί η αλλαγή:
|
1 |
sudo service ssh restart |
Για συστήματα systemd όπως το Ubuntu 16.04 ή το Debian Jessie χρησιμοποιήστε αυτήν την εντολή:
|
1 |
sudo systemctl restart ssh |
Δοκιμάστε τις αλλαγές σας διεξοδικά για να βεβαιωθείτε ότι όλα λειτουργούν τέλεια. Θα πρέπει πιθανώς να διατηρήσετε κάποιες συνεδρίες ενεργές εάν κάνετε αλλαγές. Με αυτόν τον τρόπο, μπορείτε να επαναφέρετε τις ρυθμίσεις εάν είναι απαραίτητο.
Πώς συνδέεστε στο SSH με κλειδιά; Είναι καλό να συνδέεστε σε ένα απομακρυσμένο σύστημα με κωδικό πρόσβασης. Ωστόσο, είναι προτιμότερο να ρυθμίσετε τον έλεγχο ταυτότητας με βάση κλειδιά.
Τι είναι ο έλεγχος ταυτότητας με βάση κλειδιά;
Η πιστοποίηση βάσει κλειδιού δημιουργεί δύο ζεύγη κλειδιών που ονομάζονται ιδιωτικό και δημόσιο κλειδί. Το ιδιωτικό κλειδί βρίσκεται στον υπολογιστή του χρήστη και προστατεύεται και διατηρείται μυστικό. Το δημόσιο κλειδί μπορεί να διατεθεί σε οποιονδήποτε ή να αποθηκευτεί σε οποιονδήποτε διακομιστή στον οποίο θέλετε να έχετε πρόσβαση. Εάν προσπαθήσετε να συνδεθείτε χρησιμοποιώντας ένα ζεύγος κλειδιών, ο διακομιστής χρησιμοποιεί το δημόσιο κλειδί για να δημιουργήσει ένα μήνυμα για τον υπολογιστή του χρήστη. Ο χρήστης μπορεί να διαβάσει το μήνυμα μόνο χρησιμοποιώντας ένα ιδιωτικό κλειδί. Στη συνέχεια, ο υπολογιστής του χρήστη στέλνει μια απάντηση πίσω στον διακομιστή και ο διακομιστής γνωρίζει ότι ο χρήστης είναι γνήσιος. Μετά τη ρύθμιση του κλειδιού, ολόκληρη η διαδικασία ολοκληρώνεται αυτόματα στο παρασκήνιο.
Πώς να δημιουργήσετε κλειδιά SSH
Τα κλειδιά SSH θα πρέπει να δημιουργηθούν στον υπολογιστή από τον οποίο θέλετε να συνδεθείτε. Αυτός είναι συνήθως ο τοπικός σας υπολογιστής. Εισαγάγετε τα ακόλουθα στη γραμμή εντολών:
|
1 |
ssh-keygen -t rsa |
Στη συνέχεια, αποδεχτείτε τις προεπιλογές πατώντας το ΠΛΗΚΤΡΟ ENTER. Θα δημιουργήσει τα κλειδιά σας στο ~/.ssh/id_rsa.pub και στο ~/.ssh/id_rsa. Στη συνέχεια, πληκτρολογήστε την παρακάτω εντολή για να μεταβείτε στον κατάλογο .ssh:
|
1 |
cd ~/.ssh |
Αυτά είναι τα δικαιώματα των αρχείων:
|
1 |
ls -l |

Όπως μπορείτε να δείτε, μόνο ο ιδιοκτήτης μπορεί να διαβάσει και να γράψει το αρχείο id_rsa. Επομένως, πρέπει να το διατηρήσετε ασφαλές. Ωστόσο, μπορείτε να μοιραστείτε το αρχείο id_rsa.pub και να έχετε τα κατάλληλα δικαιώματα για αυτήν τη δραστηριότητα. Το επόμενο βήμα είναι να μεταφέρετε το δημόσιο κλειδί στον διακομιστή χρησιμοποιώντας αυτήν τη σύνταξη:
|
1 |
ssh-copy-id remote_host |
Αυτό ξεκινά μια συνεδρία SSH και πρέπει να χρησιμοποιήσετε έναν κωδικό πρόσβασης για έλεγχο ταυτότητας. Αφού εισαγάγετε τον κωδικό πρόσβασης, το δημόσιο κλειδί σας θα αντιγραφεί στο αρχείο εξουσιοδοτημένων κλειδιών του διακομιστή’ ώστε να μπορείτε να συνδεθείτε την επόμενη φορά χωρίς κωδικό πρόσβασης.
Πώς να απενεργοποιήσετε τον έλεγχο ταυτότητας με κωδικό πρόσβασης
Εάν έχει δημιουργηθεί ένα κλειδί SSH, μπορείτε να βελτιώσετε την ασφάλεια του διακομιστή απενεργοποιώντας τον έλεγχο ταυτότητας μόνο με κωδικό πρόσβασης. Μπορείτε να συνδεθείτε στον διακομιστή χρησιμοποιώντας το ιδιωτικό κλειδί με το δημόσιο κλειδί εγκατεστημένο στον διακομιστή αντί να χρησιμοποιήσετε την κονσόλα.
Σημείωση: Βεβαιωθείτε ότι έχετε εγκαταστήσει το δημόσιο κλειδί στον διακομιστή πριν προχωρήσετε με αυτό το βήμα. Διαφορετικά θα αποκλειστείτε!
Ανοίξτε το αρχείο ρυθμίσεων του sshd χρησιμοποιώντας αυτήν την εντολή:
|
1 |
sudo nano /etc/ssh/sshd_config |
Βρείτε και αποσχολιάστε τη γραμμή που αναφέρει τον έλεγχο ταυτότητας με κωδικό πρόσβασης (Password Authentication) διαγράφοντας το # στην αρχή. Στη συνέχεια, μπορείτε να αλλάξετε την τιμή σε “no”:
|
1 |
PasswordAuthentication όχι |
Τα PubkeyAuthentication και ChallengeResponseAuthentication είναι ορισμένα από προεπιλογή και θα πρέπει να μοιάζουν κάπως έτσι:
|
1 2 |
PubkeyAuthentication ναι ChallengeResponseAuthentication όχι |
Δεν πρέπει να αλλάξετε αυτές τις δύο ρυθμίσεις. Μετά από αυτό, αποθηκεύστε το αρχείο και κλείστε το μόλις κάνετε τις αλλαγές. Στη συνέχεια, χρησιμοποιήστε την παρακάτω εντολή για να επανεκκινήσετε τον δαίμονα (daemon) SSH:
|
1 |
sudo systemctl restart ssh |
Τέλος, έχετε απενεργοποιήσει τον έλεγχο ταυτότητας με κωδικό πρόσβασης και η πρόσβαση στον διακομιστή σας μπορεί να γίνει μόνο με χρήση ελέγχου ταυτότητας με κλειδί SSH.
Συμπέρασμα
Σε αυτόν τον οδηγό, σας δείξαμε πώς να χρησιμοποιείτε το SSH για να συνδεθείτε με ασφάλεια σε έναν απομακρυσμένο διακομιστή στο Ubuntu. Η εκμάθηση της χρήσης του SSH είναι θεμελιώδης εάν είστε διαχειριστής συστήματος, επομένως αφού κατανοήσετε αυτόν τον οδηγό, μπορείτε να προχωρήσετε με πιο προηγμένες λειτουργίες του SSH.
Καλή συνέχεια!
Σχόλια
Δεν υπάρχουν σχόλια ακόμα. Γράψτε το πρώτο.