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

04/12/2023 / 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:

Τώρα ας προσπαθήσουμε να κάνουμε login, με "ssh 'user@12.34.56.78'", και check in: ~/.ssh/authorized_keys για να σιγουρευτούμε ότι δεν προσθέσαμε επιπλέον keys που δεν περιμέναμε. 

Δοκιμάζουμε να κάνουμε 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

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



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

Μάθετε περισσότερα για τις υπηρεσίες μας εδώ.

Ακολουθήστε μας σε LinkedIn, Facebook, & Instagram για να μένετε ενημερωμένοι!

ΣΥΝΔΕΣΗ

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

ΠΑΝΩ