Αρχή / Σεμινάρια / Servers / SSH σύνδεση με κλειδί RSA χρησιμοποιώντας το PuTTY

SSH σύνδεση με κλειδί RSA χρησιμοποιώντας το PuTTY

Αυτό το σεμινάριο περιγράφει πώς να επιτύχετε έλεγχο ταυτότητας βασισμένο σε κλειδί SSH με χρήση του PuTTY. Αναλυτικά, περιγράφει πώς να δημιουργήσετε και να χρησιμοποιήσετε ένα ζεύγος δημόσιου/ιδιωτικού κλειδιού για να επιτύχετε μια σύνδεση SSH, από Windows 10 Desktop σε έναν απομακρυσμένο διακομιστή Linux (Dedian 11) χρησιμοποιώντας το PuTTY. Οι SSH συνδέσεις που βασίζονται σε RSA κλειδιά πλεονεκτούν έναντι των απλών SSH συνδέσεων καθώς μας επιτρέπουν πρόσβαση στο απομακρυσμένο σύστημα χωρίς τη χρήση στοιχείων σύνδεσης ενώ συχρόνως αποτρέπουν κάθε ενδεχόμενο επιτυχίας brute-force επιθέσεων.

1. Απαραίτητο Λογισμικό

Για την ολοκλήρωση της key-based SSH σύνδεσης είναι αναγκαίο να εγκατασταθούν στο Windows σύστημα τα PuTTY και PuTTYgen.

Κατεβάστε από τη σελίδα με τα downloads του PuTTY, το MSI installer (στην περίπτωσή μας είναι το 64-bit x86: putty-64bit-0.80-installer.msi).

Μόλις το κατεβάσετε, το εγκαταστήστε το στον υπολογιστή σας. Όταν μετά από μερικά λεπτά ολοκληρωθεί ή εγκατάσταση στο συστημά σας θα βρίσκονται όλα τα απαραίτητα προγράμματα. Ανοίγοντας τον φάκελο εγκατάστασης C:\Program Files\PuTTY έχουμε πρόσβαση σε όλα τα προγράμματα.

Δημιουργούμε συντόμευση επιφάνειας εργασίας για το PuTTY, την οποία θα χρειαστεί να χρησιμοποιούμε συχνά.

2. Δημιουργία προφίλ ρυθμίσεων στο PuTTY

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

  1. Επιλέξτε την κατηγορία Session στην αριστερή στήλη (εικόνα 1, 1).
  2. IΣτο πεδίο Host Name (or IP address) (εικόνα 1, 2) συμπληρώνουμε τα στοιχεία του απομακρυσμένου διακομιστή (ΧΧΧ.ΧΧΧ.ΧΧΧ.ΧΧΧ είναι η IP που εμφανίζεται στις εικόνες του σεμιναρίου και θα την αντικαταστήσετε με την δική σας)
  3. Στο πεδίο Port (εικόνα 1, 3) είναι η προκαθορισμένη τιμή για SSH συνδέσεις και είναι το 22 και
  4. Connection type επιλέξτε SSH (εικόνα 2, 4).
  5. Στη συνέχεια, μεταβαίνουμε στην κατηγορία Connection > Data (εικόνα 2, 5 ) όπου
  6. Συμπληρώνουμε στο Login details το πεδίο Auto-login username (εικόνα 2, 6) με το επιθυμητό username της σύνδεσης. Στο σεμινάριο χρησιμοποιώ το root.
  7. Κατόπιν επιστρέφουμε στην κατηγορία Session (εικόνα 3, 7) όπου
  8. συμπληρώνουμε ένα φιλικό όνομα για τη σύνδεση στο πεδίο Saved Sessions (εικόνα 3, 8) και
  9. ιέζουμε το κουμπί Save (εικόνα 3, 9) για να αποθηκεύσουμε τη σύνδεσή μας.
  10. Την επόμενη φορά που θελουμε να χρησιμοποιήσουμε αυτή τη σύνδεση, απλά την επιλέγουμε κλικάροντας την στη λίστα με τις Saved Sessions (εικόνα 3, 10),
  11. τη φορτώνουμε πιέζοντας το κουμπί Load (εικόνα 3, 11) και
  12. την ανοίγουμε πιέζοντας το κουμπί Open (εικόνα 3, 12).

3. SSH σύνδεση με το διακομιστή

Τώρα είμαστε έτοιμοι να ανοίξουμε μια SSH σύνδεση με τον διακομιστή. Κατά την πρώτη SSH σύνδεση μας θα εμφανιστεί ένα warning μήνυμα.

Αυτο συμβαίνει γιατί το PuTTY δε γνωρίζει ακόμα το host key του διακομιστή. Είναι απολύτως ασφαλές να επιλέξουμε Accept (εικόνα 4). Θυμηθείτε όμως πως θα λάβετε το ίδιο μήνυμα σε περίπτωση που αλλάξει το host key του διακομιστή.

Εικόνα 4

Η SSH σύνδεση θα ανοίξει και αφού νωρίτερα κατά τη ρύθμιση του PuTTY ορίσαμε username, τώρα θα χρειαστεί να συμπληρώσουμε τον κωδικό εισόδου. Αν ο κωδικός είναι σωστός έχουμε συνδεθεί στο διακομιστή μας. Η σύνδεσή μας όμως είναι με τη χρήση username & password και όχι key-based. Οποισδήποτε γνωρίζει αυτά τα στοιχεία μπορεί να συνδεθεί στο διακομιστή.

4. Δημιουργία ενός ζεύγους δημόσιου/ιδιωτικού κλειδιού (Public/Private key)

Για τη δημιουργία του δημόσιου/ιδιωτικού RSA κλειδιού θα χρησιμοποιήσουμε το PuTTYgen. Ξεκινάμε το πρόγραμμα με διπλό κλίκ στο puttygen.exe που βρίσκεται στο φάκελο εγκατάστασης του PuTTY, στην περίπτωσή μας τον C:\Program Files\PuTTY.

Βεβαιωθείτε ότι το Type of key to generate έχει οριστεί σε RSA (Εικόνα 5, 1) και το Number of bits in a generated key είναι 2048 (Εικόνα 5, 2). Στη συνέχεια, πατήστε το κουμπί Generate (Εικόνα 5, 3).

Κατά τη δημιουργία του κλειδιού (εικόνα 6), το προγραμμα μας παροτρύνει να μετακινήσουμε το δείκτη του ποντικιού πάνω από την κενή περιοχή για να δημιουργηθεί κάποια τυχαιότητα:

Η διαδικασία θα ολοκληρωθεί σύντομα και στη συνέχεια πρέπει να:

  1. Συμπληρώστε το πεδίο Key comment field (Εικόνα 7, 1). Η τιμή που θα δώσετε μπορεί να είναι οποιαδήποτε, πχ. το email σας ή κάποια άλλη τιμή.
  2. Συμπληρώστε έναν κωδικό στο πεδίο Key passphrase. (Εικόνα 7, 2). Χρειαζόμαστε τη Key passphrase για να συνδεθούμε στο SSH με το νέο μας κλειδί.
  3. Επιβεβαιώστε τον κωδικο στο πεδίο Confirm passphrase (Εικόνα 7, 3).
  4. Αποθηκεύστε το δημόσιο κλειδί πιέζοντας στο κουμπί Save public key (Εικόνα 7, 4). Δεν έχει σημασία το όνομα ή σε ποιό φάκελο του υπολογιστή θα επιλέξετε να αποθηκεύσετε το κλειδί.
  5. Αποθηκεύστε το ιδιωτικό κλειδί πιέζοντας στο κουμπί Save private key (Εικόνα 7, 5). Επιλέξτε το όνομα του αρχείου και αποθηκεύστε. Δεν έχει σημασία το όνομα ή σε ποιό φάκελο του υπολογιστή θα επιλέξετε να αποθηκεύσετε το κλειδί.

Φροντίστε τα κλειδιά να έχουν όνοματα που θα σας βοηθούν να καταλάβετε σε ποιό σύστημα ανοίκουν, αλλά και να αποθηκευθούν σε κάποιο φάκελο που θα τον βρίσκετε εύκολα.

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

Στη συνέχεια, αντιγράψτε το κλειδί από το παράθυρο του PuTTYgen (Εικόνα 8).

5. Αποθήκευση του κλειδιού στο διακομιστή

Νωρίτερα είχαμε συνδεθεί στο διακομιστή αλλά εάν η σύνδεσή σας έκλεισε για κάποιο λόγο ξανασυνδεθείτε. Μπορείτε ακόμα να χρησιμοποιήσετε τα username & password.

Επικολήστε το RSA κλειδί στο αρχείο ~/.ssh/authorized_keys2. Ακολουθήστε τα παρακάτω βήματα:

mkdir ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys2

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

ssh-rsa AAAAB3NzaC1[…]HIrJojEhV5B/ rsa-key-20240316-XXX.XXX.XXX.XXX

Αυτό το αρχείο πρέπει να είναι εγγράψιμο/αναγνώσιμο μόνο από αυτόν τον χρήστη, οπότε εκτελούμε την εντολή:

chmod 600 ~/.ssh/authorized_keys2

6. Προσάρτηση του ιδιωτικού κλειδιού στο PuTTY προφίλ

Ανοίξτε ξανά το PuTTY και φορτώστε το προφίλ που αποθηκεύσατε νωρίτερα. (Εικόνα 9, 1-2)

Εικόνα 9

Μεταβείτε στην κατηγορία: Connection > SSH > Auth > Credentials (Εικόνα 10, 1) και πιέστε στο κουμπί Browse (Εικόνα 10, 2).

Εικόνα 10

Περιηγηθείτε στο σύστημα αρχείων σας και επιλέξτε το ιδιωτικό κλειδί που δημιουργήσατε προηγουμένως (Εικόνα 11):

Προσθήκη RSA key στο PuTTY για key-based SSH authentication
Εικόνα 11

Επιλέξτε πάλι την κατηγορία Session (Εικόνα 12, 1) και πιεστε στο κουμπί Save (Εικόνα 12, 2) για να αποθηκεύσετε τις αλλαγές στο προφίλ.

Εικόνα 12

7. Key-based SSH Σύνδεση

Όλα είναι έτοιμα για την πρώτη key-based SSH σύνδεση στο διακομιστή. Με το PuTTY έτοιμο πιέζουμε στο κουμπί Open (Εικόνα 13, 3).

Εικόνα 13

Όπως μπορείτε να δείτε (Εικόνα 14), το δημόσιο κλειδί χρησιμοποιείται τώρα για τον έλεγχο ταυτότητας και σας ζητείται η φράση πρόσβασης (ο κωδικός που καθορίσατε στο κεφάλαιο 4):

SSH σύνδεση με κλειδί RSA χρησιμοποιώντας το PuTTY
Εικόνα 14

Το PuTTY, διαθέτει το πρόγραμμα pageant που κάνει τη χρήση του πολύ ευκολότερη. Για παράδειγμα μπορείτε να χρησιμοποιήστε το Pageant για να αποθηκεύσετε τη passphrase των κλειδιών.

8. Απενεργοποίηση δυνατότητας SSH σύνδεσης με όνομα χρήστη/συνθηματικό

Σε αυτό το σημείο μπορούμε να συνδεθούμε στο διακομιστή με το ζεύγος δημόσιου/ιδιωτικού κλειδιού αλλά και με τη χρήση username & password. Αν δεν συνδέονται άλλοι στο server και θέλουμε μεγαλύτερη ασφάλεια, πρέπει να απενεργοποιήσουμε τη δυνατότητα εισόδου με χρήση ονόματος χρήστη / κωδικού.

Για να απενεργοποιήσουμε αυτή τη δυνατότητα, πρέπει να τροποποιήσουμε το αρχείο ρυθμίσεων του ssh server. Στο σύστημά μας (Debian 11) αλλά και στα Ubundu συστήματα αυτό μπορεί να γίνει μέσω του αρχείου /etc/ssh/sshd_config.

nano /etc/ssh/sshd_config

Και ρυθμίστε τις παρακάτω εγγραφές σε no:

ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM no

Στη συνέχεια επανεκινήστε τον OpenSSH server:

systemctl restart sshd

Πλέον δε μπορείτε να συνδεθείτε με χρήση username/password και μπορείτε να το διαπιστώσετε αν προσπαθήσετε να ανοίξετε μια νέα SSH σύνδεση, χωρίς ρυθμίσμενο το ιδιωτικό κλειδί.

Αυτό είναι όλο, ο έλεγχος ταυτότητας με βάση το κλειδί SSH χρησιμοποιώντας για τη σύνδεση το PuTTY είναι έτοιμος.

Αφήστε ένα σχόλιο

Η ηλ. διεύθυνση σας δεν δημοσιεύεται. Τα υποχρεωτικά πεδία σημειώνονται με *

Scroll to Top