Ένα πρόβλημα που αντιμετώπισα πρόσφατα είχε σχέση με το ότι ο ssh-agent δεν μπορούσε να ξεχωρίσει ποιο ssh κλειδί να στείλει σε ποιο αποθετήριο Github.
Αυτό μπορεί να συμβεί σε διάφορες περιπτώσεις. Η πιο απλή είναι όταν κάποιος έχει περισσότερους από έναν λογαριασμούς στο Github ή ακόμη και πρόσβαση σε αποθετήρια, με διαφορετικά ssh κλειδιά για τον κάθε λογαριασμό και όλα αυτά στον ίδιο υπολογιστή.
Βρήκα διάφορες λύσεις ψάχνοντας στο διαδίκτυο όπως να ορίσω την sshComand
στο αποθετήριο μέσω της git config, να κοιτάξω το url του αποθετηρίου μπας και είναι
λάθος και άλλα. Τίποτα δεν δούλεψε όπως δούλεψε ο απλός και αποτελεσματικός τρόπος
του alias.
Την επόμενη φορά λοιπόν, που θα αντιμετωπίσω τέτοιο πρόβλημα, να θυμηθώ να κάνω τα εξής:
Αφού έχω τσεκάρει ότι δεν έχω κάποιο commit σε εκρεμμότητα, διαγράφω το “προβληματικό” αποθετήριο από το PC (Local Only).
Κάνω git clone το αποθετήριο, αυτή τη φορά όμως προσθέτοντας μια λέξη δίπλα από το github.com, όπως πχ. git@github.com -blog:NickTux/nicktux.github.io.git
Το alias δεν αλλάζει κάτι στο Online αποθετήριο. Ισχύει μόνο τοπικά, στο PC που γίνεται το cloning.
Ανοίγω το .ssh/config
και προσθέτω τη κατάλληλη εγγραφή όπως παρακάτω:
# Github for BLOG (nicktux.gr)
Host github.com-blog # αυτό κάνει τη διαφορά
HostName github.com
IdentityFile /home/nicktux/.ssh/id_rsa_blog
Αποθηκεύω και κάνω μια επανεκκίνηση τον ssh-agent
killall ssh-agent
ssh-agent
Έτοιμος!
Αυτό είναι το “μυστικό”, ότι μπορώ να κάνω clone το αποθετήριο με alias. Το οποίο βέβαια, έως τώρα, δεν ήξερα ότι γίνεται.
Until next time ... "Keep Your Mind in a Constant State of Openness"