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

Ακολουθεί μια γρήγορη πτώση για το πώς λειτουργούν τα εργαλεία OpenSSH CLI (scp και sftp) ώστε να μπορείτε να εκτιμήσετε καλύτερα το ζήτημα. Όταν θέλετε να αντιγράψετε αρχεία προς ή από τον απομακρυσμένο κεντρικό υπολογιστή, μπορείτε να χρησιμοποιήσετε το scp το οποίο εκκινεί αυτόματα μια σύνδεση SSH στον απομακρυσμένο κεντρικό υπολογιστή. Κάθε φορά που εκτελείτε μια εντολή scp, δημιουργεί μια νέα σύνδεση στο τηλεχειριστήριο. Επομένως, αν έχετε πολλαπλές εντολές scp, θα εισάγετε τον ίδιο κωδικό πρόσβασης αρκετές φορές.

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

Για να ξεπεραστεί αυτό το πρόβλημα, πρέπει να αλλάξετε τον προεπιλεγμένο μηχανισμό ελέγχου ταυτότητας του OpenSSH σε ένα σύστημα βασισμένο σε κλειδιά.

Το κλειδί της επιτυχίας

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

 $ ssh [email protected] Η αυθεντικότητα του host 'atlantis.remote.com (atlantis.remote.com)' δεν είναι δυνατή. Το δακτυλικό αποτύπωμα ECDSA είναι da: e8: a2: 77: f4: e5: 10: 56: 6d: d4: d2: dc: 15: 8e: 91: 22. Είστε βέβαιοι ότι θέλετε να συνεχίσετε τη σύνδεση (ναι / όχι); 

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

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

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

 $ ssh-keygen Δημιουργία δημόσιου / ιδιωτικού ζεύγους κλειδιών rsa. Εισαγάγετε το αρχείο στο οποίο θέλετε να αποθηκεύσετε το κλειδί (/home/bodhi/.ssh/id_rsa): Εισαγάγετε τη φράση πρόσβασης (κενή χωρίς φράση πρόσβασης): Πληκτρολογήστε ξανά την ίδια φράση: Το αναγνωριστικό σας αποθηκεύτηκε στο /home/bodhi/.ssh/id_rsa. Το δημόσιο κλειδί σας αποθηκεύτηκε στο /home/bodhi/.ssh/id_rsa.pub. 

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

Το επόμενο βήμα είναι η αντιγραφή του δημόσιου κλειδιού στον απομακρυσμένο διακομιστή. Υποθέτοντας ότι θέλετε να συνδεθείτε στο χρήστη "admin" στο απομακρυσμένο μηχάνημα που ονομάζεται "atlantis.remote.com", μπορείτε να μετακινήσετε τα πλήκτρα με μία μόνο εντολή:

 $ ssh-copy-id -i ~ / .ssh / id_rsa.pub [email protected] Κωδικός πρόσβασης [email protected]: 

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

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

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

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

Σχετικά : Τρόπος ενεργοποίησης του ελέγχου ταυτότητας δύο παραγόντων για σύνδεση SSH

SSH-πράκτορα στη διάσωση

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

Μπορείτε να ξεκινήσετε τον παράγοντα με " ssh-agent /bin/bash ", υποθέτοντας ότι χρησιμοποιείτε το κέλυφος bash.

Οποιεσδήποτε εντολές που απαιτούν πρόσβαση στα ιδιωτικά κλειδιά του OpenSSH θα παραληφθούν και θα απαντηθούν από τον πράκτορα.

Όταν ο πράκτορας τρέχει, πρέπει να το εξοπλίσετε με τα κλειδιά σας. Αυτό γίνεται με την κλήση του προγράμματος "ssh-add" που φορτώνει από προεπιλογή τα κλειδιά από το προεπιλεγμένο αρχείο ταυτότητας (~ / .ssh / id_rsa).

 $ ssh-add Εισαγωγή φράσης πρόσβασης για /home/bodhi/.ssh/id_rsa: Προστιθέμενη ταυτότητα: /home/bodhi/.ssh/id_rsa (/home/bodhi/.ssh/id_rsa) 

Τώρα όταν συνδέεστε στον απομακρυσμένο υπολογιστή με το " ssh [email protected] ", θα σας επιτραπεί χωρίς να εισάγετε τη φράση πρόσβασης!

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

Επίσης τώρα που χρησιμοποιείτε κλειδιά, είναι καλή ιδέα να απενεργοποιήσετε τον έλεγχο ταυτότητας μέσω κωδικών πρόσβασης. Για να γίνει αυτό, επεξεργαστείτε το αρχείο ρυθμίσεων του απομακρυσμένου διακομιστή (/etc/ssh/.sshd_config) και αλλάξτε την παράμετρο " PasswordAuthentication " από "ναι" σε "όχι". Από εδώ και στο εξής, αν κάποιος προσπαθήσει να συνδεθεί με την υπηρεσία SSH που δεν έχει δημόσιο κλειδί στον διακομιστή, θα του απαγορευτεί η πρόσβαση χωρίς να δει καν το μήνυμα σύνδεσης.

Πιστωτική εικόνα: Karunakar Rayker