Git
Chapters ▾ 2nd Edition

4.3 Το Git στον διακομιστή - Δημιουργία δημόσιου κλειδιού SSH

Δημιουργία δημόσιου κλειδιού SSH

Πολλοί διακομιστές Git ταυτοποιούν τους χρήστες χρησιμοποιώντας δημόσια κλειδιά SSH. Για να παρέχουμε το δημόσιο κλειδί μας, όλοι οι χρήστες στο σύστημά μας πρέπει να δημιουργήσουν ένα, αν δεν έχουν ήδη. Η διαδικασία είναι παρόμοια σε όλα τα λειτουργικά συστήματα. Πρώτα πρέπει να ελέγξουμε ότι δεν έχουμε ήδη κλειδί. Η προεπιλεγμένη θέση στην οποία αποθηκεύονται τα κλειδιά SSH ενός χρήστη είναι ο κατάλογος ~/.ssh. Μπορούμε εύκολα να ελέγξουμε αν έχουμε ήδη κλειδί πηγαίνοντας σε αυτόν τον κατάλογο και βλέποντας τα περιεχόμενά του:

$ cd ~/.ssh
$ ls
authorized_keys2  id_dsa       known_hosts
config            id_dsa.pub

Ψάχνουμε για ένα αρχείο που ονομάζεται id_dsa ή id_rsa ή κάτι παραπλήσιο και ένα ακόμα με το ίδιο όνομα αλλά κατάληξη .pub. Το αρχείο με κατάληξη .pub είναι το δημόσιο κλειδί μας και το άλλο αρχείο είναι το ιδιωτικό κλειδί μας. Αν δεν έχουμε τέτοια αρχεία (ή αν δεν έχουμε καν κατάλογο .ssh), μπορούμε να τα δημιουργήσουμε τρέχοντας ένα πρόγραμμα που ονομάζεται ssh-keygen, και το οποίο παρέχεται με το πακέτο SSH σε συστήματα Linux και Mac και με το πακέτο MSysGit σε Windows:

$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/schacon/.ssh/id_rsa):
Created directory '/home/schacon/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/schacon/.ssh/id_rsa.
Your public key has been saved in /home/schacon/.ssh/id_rsa.pub.
The key fingerprint is:
d0:82:24:8e:d7:f1:bb:9b:33:53:96:93:49:da:9b:e3 schacon@mylaptop.local

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

Τώρα κάθε χρήστης που κάνει αυτήν τη διαδικασία πρέπει να στείλει το δημόσιο κλειδί του σε μας ή σε όποιον είναι ο διαχειριστής του διακομιστή Git (με την προϋπόθεση ότι χρησιμοποιούμε έναν διακομιστή με SSH που απαιτεί δημόσια κλειδιά). Το μόνο που πρέπει να κάνει είναι να αντιγράψει τα περιεχόμενα του αρχείου .pub και να τα στείλει με e-mail. Το δημόσιο κλειδί μοιάζει με κάτι τέτοιο:

$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSU
GPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3
Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XA
t3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/En
mZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbx
NrRFi9wrf+M7Q== schacon@mylaptop.local

Για έναν οδηγό σε μεγαλύτερο βάθος σχετικά με τη δημιουργία κλειδιού SSH σε διάφορα λειτουργικά συστήματα, βλ. τον οδηγό του GitHub για τα κλειδιά SSH στην ιστοσελίδα https://help.github.com/articles/generating-ssh-keys.