Περισσότερα
Πώς να καθορίσετε το ιδιωτικό κλειδί SSH που θα χρησιμοποιηθεί κατά την εκτέλεση εντολών κελύφους στο Git;
Ίσως μια μάλλον ασυνήθιστη κατάσταση, αλλά θέλω να καθορίσω ένα ιδιωτικό κλειδί SSH που θα χρησιμοποιηθεί κατά την εκτέλεση μιας εντολής κελύφους (git) από τον τοπικό υπολογιστή.
Βασικά, κάπως έτσι:
git clone git@github.com:TheUser/TheProject.git -key "/home/christoffer/ssh_keys/theuser"
Ή ακόμα καλύτερα (σε Ruby):
with_key("/home/christoffer/ssh_keys/theuser") do
sh("git clone git@github.com:TheUser/TheProject.git")
end
Έχω δει παραδείγματα σύνδεσης σε έναν απομακρυσμένο διακομιστή με το Net::SSH που χρησιμοποιεί ένα καθορισμένο ιδιωτικό κλειδί, αλλά αυτή είναι μια τοπική εντολή. Είναι δυνατόν;
954
3
Κάτι τέτοιο θα πρέπει να λειτουργεί (προτείνεται από την orip):
αν προτιμάτε τα subshells, μπορείτε να δοκιμάσετε το εξής (αν και είναι πιο εύθραυστο):
Το Git θα καλέσει το SSH το οποίο θα βρει τον πράκτορά του μέσω της μεταβλητής περιβάλλοντος- αυτό με τη σειρά του θα έχει φορτωμένο το κλειδί.
Εναλλακτικά, η ρύθμιση του
HOME
μπορεί επίσης να κάνει το κόλπο, υπό την προϋπόθεση ότι είστε πρόθυμοι να ρυθμίσετε έναν κατάλογο που περιέχει μόνο έναν κατάλογο.ssh
ωςHOME
- αυτός μπορεί να περιέχει είτε ένα identity.pub, είτε ένα αρχείο ρυθμίσεων που ορίζει το IdentityFile.Περιεχόμενα του my_git_ssh_wrapper:
Στη συνέχεια, μπορείτε να χρησιμοποιήσετε το κλειδί κάνοντας:
Μπορείτε να χρησιμοποιήσετε τη μεταβλητή περιβάλλοντος GIT_SSH. Αλλά θα πρέπει να τυλίξετε το ssh και τις επιλογές σε ένα σενάριο κελύφους.
Δείτε το εγχειρίδιο του git:
man git
στο κέλυφος εντολών σας.