Εχουμε εναν τοπικό λίνουξ υπολογιστή και θέλουμε να συνδεθούμε σε εναν απομακρυσμένο ή δικτυακό υπολογιστή που τρέχει επίσης λίνουξ χρησιμοποιώντας το προτόκολλο SSH.
Οταν κάνουμε τέτοια σύνδεση (SSH & SCP) ο κωδικός που πληκτρολογούμε είναι μή κρυπτογραφημένος, με αποτέλεσμα να είναι προσπελάσιμος απο επιθέσεις τύπου man-in-the-middle, και keyloggers. Ο πιό ασφαλής τρόπος σύνδεσης είναι η χρήση SSL κλειδιού, ετσι ώστε να μήν είναι απαραίτητη η εισαγωγή κωδικού του χρήστη..
Η ρύθμιση γίνεται με 2 απλά βήματα :
Δημιουργία νέου κλειδιού
Δημιουργούμε το “κλειδι” στον προσωπικό μας υπολογιστή με το παρακάτω. Οταν μας ζητήσει πού να σώσουμε το καινούριο κλειδι το αφήνουμε κενό, και στον κωδικό και πάλι κενό.
ssh-keygen
Αντιγραφή κλειδιού στον απομακρυσμένο υπολογιστή
Έπειτα αντιγράφουμε το κλειδί στον απομακρυσμένο υπολογιστή. Ουσιαστικά περνάμε το public κλειδι που δημιουργήσαμε στην λίστα με τα authorized_keys του απομακρυσμένου υπολογιστή μας, ωστε να μήν χρειάζεται να βάζουμε κάθε φορά κωδικό. Το κάνουμε με την εντολή ssh-copy-id :
ssh-copy-id username@remote-server-host
Θα μας ζητηθεί μία φορά μόνο να εισάγουμε τον κωδικό του χρήστη που χρησιμοποιήσαμε στον απομακρυσμένο σερβερ, και θα ολοκληρωθεί η διαδικασία.
Απο δώ και περα για να συνδεθούμε με ssh με τον απομακρυσμένο server το μόνο που έχουμε να κάνουμε είναι να τρέξουμε το εξής:
ssh username@remote-server-host
και θα συνδεθούμε χωρίς την χρήση credentials.
Υπόψιν πως το παραπάνω κλειδί δημιουργείτε στον φάκελο /home/user/.ssl/ , οπότε και μόνο ο συγκεκριμένος χρήστης μπορεί να το χρησιμοποιήσει για να συνδεθεί. Αν για παράδειγμα τρέξουμε sudo ssh username@remote-server-host
τότε θα μας ζητηθεί να βάλουμε κωδικό του απομακρυσμένου σέρβερ, αφού για το credential το σύστημά μας θα κοιτάξει στο /root/.ssh