Πολλαπλά κλειδιά ssh και διαφορετικοί λογαριασμοί Github

σε έναν υπολογιστή με Ubuntu 20.04 LTS

Ένα πρόβλημα που αντιμετώπισα πρόσφατα είχε σχέση με το ότι ο 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"