Πώς να δημιουργήσετε ένα ζευγάρι κλειδιών SSH

13/10/2016 / Security
ssh-keys

Τα κλειδιά SSH παρέχουν έναν ασφαλέστερο τρόπο σύνδεσης σε έναν virtual private server  από τη χρήση απλά ενός password . Ενώ ένας κωδικός πρόσβασης μπορεί  να σπάσει με brute force attacks , τα κλειδιά SSH είναι σχεδόν αδύνατο να αποκρυπτογραφηθούν  με brute force . Η δημιουργία ενός ζεύγους κλειδιών  παρέχει δύο σειρές χαρακτήρων: ένα public και ένα private κλειδί. Μπορούμε  να τοποθετήσουμε το public κλειδί σε οποιονδήποτε server και, στη συνέχεια, να το ξεκλειδώσουμε συνδέοντάς τον με έναν client που έχει ήδη το private κλειδί. Όταν τα δύο κλειδιά ταιριάζουν, το σύστημα ξεκλειδώνει χωρίς την ανάγκη για password. Η ασφάλεια μπορεί να αυξηθεί επιπλέον ,  προστατεύοντας το private key με ένα passphrase .

Δημιουργία ζευγους κλειδιών

Για να δημιουργήσουμε το ζεύγος κλειδιών στον υπολογιστή μας πληκτρολογούμε την εντολή :

ssh-keygen -t rsa

Αποθήκευση των κλειδιών

Αφού εκτελέσουμε την εντολή keygen θα εμφανιστεί στην οθόνη μας το ακόλουθο μήνυμα :

Enter file in which to save the key (/home/test/.ssh/id_rsa):

Εδώ , απλά διαλέγουμε την τοποθεσία που θα αποθηκευτούν τα κλειδιά . Στο συγκεκριμένο παράδειγμα θα αποθηκευτούν στο φάκελο  test .

Αφού επιλέξουμε την τοποθεσία που θα γίνει η αποθήκευση , πατάμε enter και θα εμφανιστεί το μήνυμα :

Enter passphrase (empty for no passphrase):

Το passphrase δεν είναι υποχρεωτικό και μπορεί να μείνει κενό . Παρολαυτά η χρήση ενός passphrase συνίσταται καθώς προσθέτει ακόμα ένα στρώμα ασφαλείας .

Στο τέλος της διαδικασίας αυτής η οθόνη μας θα είναι κάπως ετσι :

ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/test/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/test/.ssh/id_rsa.
Your public key has been saved in /home/test/.ssh/id_rsa.pub.
The key fingerprint is:
……….

The key's randomart image is:

………

………

Αντιγραφή του Public Key στον Virtual Server

Τώρα που δημιουργήσαμε τα κλειδιά , θέλουμε να βάλουμε το public key στον server που θέλουμε να συνδεθούμε . Για να αντιγράψουμε το public key στο αρχείο authorized_keys του server χρησιμοποιούμε την εντολή :

ssh-copy-id username@145.36.23.86

Οπου username το όνομα χρήστη μας και έπειτα η IP διέυθυνση .

Έπειτα θα δούμε το μήνυμα :

The authenticity of host '12.34.56.78 (12.34.56.78)' can't be established.
RSA key fingerprint is b1:2d:33:67:ce:35:4d:5f:f3:a8:cd:c0:c4:48:86:12.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '12.34.56.78' (RSA) to the list of known hosts.
ser@12.34.56.78's password:

Now try logging into the machine, with "ssh 'user@12.34.56.78'", and check in: ~/.ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting. 

Δοκιμάζουμε να κάνουμε login :

ssh 'user@12.34.56.78

Δεν θα μας ζητηθεί password !

Απενεργοποίηση του Password για Root Login(Προαιρετικό)

Αφού γίνουν όλα τα παραπάνω και γίνει το log in στον server μέσω των SSH κλειδιών , μπορούμε να απενεργοποιήσουμε το password έτσι ώστε το login μελλοντικά να γίνεται αποκλειστικά μέσω των κλειδιών SSH . Η συγκεκριμένη διαδικασία είναι προαιρετική και δεν είναι αναγκαίο να γίνει για την χρήση των SSH κλειδιών σε Virtual Server . 

Για να γίνει αυτό , ανοίγουμε το configuration file των κλειδιών με έναν text editor :

sudo vi /etc/ssh/sshd_config

Έπειτα ψάχνουμε την γραμμή που περιέχει το PermitRootLogin και την αλλάζουμε έτσι ώστε να μοιάζει κάπως έτσι :

PermitRootLogin without-password

Τέλος γράφουμε

reload ssh

για να φορτώσουν οι αλλαγές .

ΣΥΝΔΕΣΗ

Αίτηση επικοινωνίας

ΠΑΝΩ