Skip to content

Commit a8d56a0

Browse files
committed
review the book/04-git-server module
1 parent 38cfc48 commit a8d56a0

File tree

9 files changed

+204
-204
lines changed

9 files changed

+204
-204
lines changed

book/04-git-server/sections/generating-ssh-key.asc

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33

44
(((SSH keys)))
55
Πολλοί διακομιστές Git ταυτοποιούν τους χρήστες χρησιμοποιώντας δημόσια κλειδιά SSH.
6-
Για να παρέχετε δημόσιο κλειδί, όλοι οι χρήστες στο σύστημά σας πρέπει να δημιουργήσουν ένα, αν δεν έχουν ήδη.
6+
Για να παρέχουμε δημόσιο κλειδί, όλοι οι χρήστες στο σύστημά μας πρέπει να δημιουργήσουν ένα, αν δεν έχουν ήδη.
77
Η διαδικασία είναι παρόμοια σε όλα τα λειτουργικά συστήματα.
8-
Πρώτα πρέπει να ελέγξετε ότι δεν έχετε ήδη κλειδί.
8+
Πρώτα πρέπει να ελέγξουμε ότι δεν έχουμε ήδη κλειδί.
99
Η προεπιλεγμένη θέση στην οποία αποθηκεύονται τα κλειδιά SSH ενός χρήστη είναι ο κατάλογος `~/.ssh`.
10-
Μπορείτε εύκολα να ελέγξετε αν έχετε ήδη κλειδί πηγαίνοντας σε αυτόν τον κατάλογο και βλέποντας τα περιεχόμενά του:
10+
Μπορούμε εύκολα να ελέγξουμε αν έχουμε ήδη κλειδί πηγαίνοντας σε αυτόν τον κατάλογο και βλέποντας τα περιεχόμενά του:
1111

1212
[source,console]
1313
----
@@ -17,9 +17,9 @@ authorized_keys2 id_dsa known_hosts
1717
config id_dsa.pub
1818
----
1919

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

2424
[source,console]
2525
----
@@ -35,11 +35,11 @@ The key fingerprint is:
3535
d0:82:24:8e:d7:f1:bb:9b:33:53:96:93:49:da:9b:e3 [email protected]
3636
----
3737

38-
Πρώτα επιβεβαιώνει πού έχετε αποθηκεύσει το κλειδί (`.ssh/id_rsa`) και μετά ρωτά δύο φορές για μία κωδική φράση, την οποία μπορείτε να αφήσετε κενή, εφόσον δεν θέλετε να πληκτρολογείτε κωδικό πρόσβασης κάθε φορά που χρησιμοποιείτε το κλειδί.
39-
Αν πάντως θέλετε να χρησιμοποιείτε κωδικό πρόσβασης, σιγουρευτείτε ότι έχετε προσθέσει την επιλογή `-o`, ώστε το ιδιωτικό κλειδί να αποθηκευτεί σε τέτοια μορφή που να αντιστέκεται στην παραβίαση του κωδικού πρόσβασης περισσότερο από ότι η προεπιλεγμένη μορφή.
40-
Μπορείτε επίσης να χρησιμοποιήσετε το εργαλείο `ssh-agent` για να μη χρειάζεται να εισάγετε τον κωδικό πρόσβασης κάθε φορά.
38+
Πρώτα επιβεβαιώνει πού έχουμε αποθηκεύσει το κλειδί (`.ssh/id_rsa`) και μετά ρωτά δύο φορές για μία κωδική φράση, την οποία μπορούμε να αφήσουμε κενή, εφόσον δεν θέλουμε να πληκτρολογούμε κωδικό πρόσβασης κάθε φορά που χρησιμοποιούμε το κλειδί.
39+
Αν πάντως θέλουμε να χρησιμοποιούμε κωδικό πρόσβασης, σιγουρευόμαστε ότι έχουμε προσθέσει την επιλογή `-o`, ώστε το ιδιωτικό κλειδί να αποθηκευτεί σε τέτοια μορφή που να αντιστέκεται στην παραβίαση του κωδικού πρόσβασης περισσότερο από ότι η προεπιλεγμένη μορφή.
40+
Μπορούμε επίσης να χρησιμοποιήσουμε το εργαλείο `ssh-agent` για να μη χρειάζεται να εισάγουμε τον κωδικό πρόσβασης κάθε φορά.
4141

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

book/04-git-server/sections/git-daemon.asc

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,27 @@
11
=== Δαίμονες του Git
22

33
(((αποθετήρια εξυπηρέτησης, πρωτόκολλο git)))
4-
(((serving repositories, git protocol)))
54
Στη συνέχεια θα εγκαταστήσουμε έναν δαίμονα που θα εξυπηρετεί αποθετήρια μέσω του πρωτοκόλλου "`Git`".
6-
Αυτή είναι μια συνήθης επιλογή για γρήγορη και χωρίς ταυτοποίηση πρόσβαση στα δεδομένα σας στο Git.
7-
Να θυμάστε πως δεδομένου ότι πρόκειται για μια υπηρεσία χωρίς ταυτοποίηση, οτιδήποτε παρέχεται πάνω από αυτό το πρωτόκολλο είναι δημόσιο εντός του δικτύου του.
5+
Αυτή είναι μια συνήθης επιλογή για γρήγορη και χωρίς ταυτοποίηση πρόσβαση στα δεδομένα μας στο Git.
6+
Θυμόμαστε πως δεδομένου ότι πρόκειται για μια υπηρεσία χωρίς ταυτοποίηση, οτιδήποτε παρέχεται πάνω από αυτό το πρωτόκολλο είναι δημόσιο εντός του δικτύου του.
87

9-
Εάν τρέχετε τον δαίμονα σε έναν διακομιστή εκτός firewall, θα πρέπει να χρησιμοποιείται μόνο για έργα που είναι ορατά σε όλον τον κόσμο.
10-
Αν ο διακομιστής στον οποίο τον τρέχετε είναι εντός firewall, μπορείτε να τον χρησιμοποιήσετε για έργα στα οποία ένας μεγάλος αριθμός ανθρώπων ή υπολογιστών (continuous integration ή build servers) έχουν πρόσβαση μόνο για ανάγνωση, όταν δεν θέλετε να προσθέσετε κλειδί SSH για τον καθένα.
8+
Εάν τρέχουμε τον δαίμονα σε έναν διακομιστή εκτός firewall, θα πρέπει να χρησιμοποιείται μόνο για έργα που είναι ορατά σε όλον τον κόσμο.
9+
Αν ο διακομιστής στον οποίο τον τρέχουμε είναι εντός firewall, μπορούμε να τον χρησιμοποιήσουμε για έργα στα οποία ένας μεγάλος αριθμός ανθρώπων ή υπολογιστών (continuous integration ή build servers) έχουν πρόσβαση μόνο για ανάγνωση, όταν δεν θέλουμε να προσθέσουμε κλειδί SSH για τον καθένα.
1110

1211
Σε κάθε περίπτωση, το πρωτόκολλο Git είναι σχετικά εύκολο στη ρύθμισή του.
13-
Βασικά, θα πρέπει να εκτελέσετε αυτή την εντολή με "`δαιμονοποιημένο`" τρόπο: (((εντολές git, δαίμονας)))
12+
Βασικά, θα πρέπει να εκτελέσουμε αυτή την εντολή με "`δαιμονοποιημένο`" τρόπο: (((εντολές git, δαίμονας)))
1413

1514
[source,console]
1615
----
1716
$ git daemon --reuseaddr --base-path=/srv/git/ /srv/git/
1817
----
1918

20-
Ο διακόπτης `--reuseaddr` επιτρέπει στον διακομιστή να επανεκκινήσει χωρίς να αναμένει αποσύνδεση των παλαιών συνδέσεων, ο διακόπτης `--base-path` επιτρέπει την κλωνοποίηση έργων χωρίς να καθορίζεται ολόκληρη τη διαδρομή και η διαδρομή στο τέλος λέει στον δαίμονα Git πού να αναζητήσει αποθετήρια προς εξαγωγή.
21-
Εάν τρέχετε ένα firewall, θα χρειαστεί επίσης να του ανοίξετε μία τρύπα στη θύρα 9418 στο κουτί που τον εγκαθιστάτε τον διακομιστή.
19+
Ο διακόπτης `--reuseaddr` επιτρέπει στον διακομιστή να επανεκκινήσει χωρίς να αναμένει αποσύνδεση των παλαιών συνδέσεων, ο διακόπτης `--base-path` επιτρέπει την κλωνοποίηση έργων χωρίς να καθορίζεται ολόκληρη η διαδρομή (path), και η διαδρομή (path) στο τέλος λέει στον δαίμονα Git πού να αναζητήσει αποθετήρια προς εξαγωγή.
20+
Εάν τρέχουμε ένα firewall, θα χρειαστεί επίσης να του ανοίξουμε μία τρύπα στη θύρα 9418 στο κουτί που τον εγκαθιστούμε στον διακομιστή.
2221

23-
Μπορείτε να "`δαιμονοποίησετε`" αυτή τη διαδικασία με διάφορους τρόπους, ανάλογα με το λειτουργικό σύστημα που εκτελείτε.
24-
Δεδομένου ότι `systemd` είναι το πιο συνηθισμένο σύστημα init στις μοντέρνες διανομές Linux, μπορείτε να χρησιμοποιήσετε αυτό για αυτό τον σκοπό.
22+
Μπορούμε να "`δαιμονοποίησουμε`" αυτή τη διαδικασία με διάφορους τρόπους, ανάλογα με το λειτουργικό σύστημα που εκτελούμε.
23+
24+
Δεδομένου ότι `systemd` είναι το πιο συνηθισμένο σύστημα init στις μοντέρνες διανομές Linux, μπορούμε να χρησιμοποιήσουμε αυτό για τον σκοπό αυτό.
2525
Απλά βάλτε ένα αρχείο στο `/etc/systemd/system/git-daemon.service` με αυτά τα περιεχόμενα:
2626

2727
[source,console]
@@ -46,16 +46,16 @@ Group=git
4646
WantedBy=multi-user.target
4747
----
4848

49-
Ίσως προσέξατε ότι ο δαίμονας του Git daemon ξεκιά εδώ ως `git` τόσο για την ομάδα όσο και για τον χρήστη.
50-
Τροποποιήστε το ώστε να το προσαρμόσετε στις ανάγκες σας και σιγουρευτείτε ότι ο χρήστης που δίνεται υπάρχει στο σύστημα.
51-
Επίσης, ελέγξτε ότι το εκτελέσιμο αρχείο του Git βρίσκεται πράγματι στο `/usr/bin/git` αλλιώς αλλάξτε τη διαδρομή καταλλήλως.
49+
Αν προσέξουμε ο δαίμονας του Git daemon ξεκινά εδώ ως `git` τόσο για την ομάδα (group) όσο και για τον χρήστη (user).
50+
Το τροποποιούμε ώστε να το προσαρμόσουμε στις ανάγκες μας και σιγουρευόμαστε ότι ο χρήστης που δίνεται υπάρχει στο σύστημα.
51+
Επίσης, ελέγχουμε ότι το εκτελέσιμο αρχείο του Git βρίσκεται πράγματι στο `/usr/bin/git` αλλιώς αλλάζουμε τη διαδρομή (path) αναλόγως.
5252

53-
Τέλος, θα εκτελέσετε `systemctl enable git-daemon` ώστε η υπηρεσία να ξεκινά αυτόματα κατά την εκκίνηση του υπολογιστή και μπορείτε να εκκινήσετε και να σταματήσετε την υπηρεσία με `systemctl start git-daemon` και `systemctl stop git-daemon` αντίστοιχα.
53+
Τέλος, θα εκτελέσουμε `systemctl enable git-daemon` ώστε η υπηρεσία να ξεκινά αυτόματα κατά την εκκίνηση του υπολογιστή και μπορούμε να εκκινήσούμε και να σταματήσουμε την υπηρεσία με `systemctl start git-daemon` και `systemctl stop git-daemon` αντίστοιχα.
5454

55-
Σε άλλα συστήματα, ίσως θελήσετε να χρησιμοποιήσετε το `xinetd`, ένα script στο σύστημά σας `sysvinit` ή κάτι άλλο -- με την προϋπόθεση ότι μπορείτε δαιμονοποιήσετε αυτή την εντολή και να την παρακολουθείτε με κάποιον τρόπο.
55+
Σε άλλα συστήματα, ίσως θελήσουμε να χρησιμοποιήσουμε το `xinetd`, ένα script στο σύστημά μας `sysvinit` ή κάτι άλλο -- με την προϋπόθεση ότι μπορούμε δαιμονοποιήσουμε αυτή την εντολή και να την παρακολουθούμε με κάποιον τρόπο.
5656

57-
Στη συνέχεια, πρέπει να ενημερώσετε το Git ποια αποθετήρια επιτρέπουν την πρόσβαση σε διακομιστές Git χωρίς ταυτοποίηση.
58-
Μπορείτε να το κάνετε σε κάθε αποθετήριο δημιουργώντας ένα αρχείο που ονομάζεται `git-daemon-export-ok`.
57+
Στη συνέχεια, πρέπει να ενημερώσουμε το Git ποια αποθετήρια επιτρέπουν την πρόσβαση σε διακομιστές Git χωρίς ταυτοποίηση.
58+
Μπορούμε να το κάνουμε σε κάθε αποθετήριο δημιουργώντας ένα αρχείο που ονομάζεται `git-daemon-export-ok`.
5959

6060
[source,console]
6161
----

0 commit comments

Comments
 (0)