Pada tulisan sebelumnya, saya sudah menjelaskan cara akses Github untuk kebutuhan push dan pull menggunakan SSH Key. Kebutuhan tersebut dilatar belakangi penambahan TFA untuk keamanan berlapis. Dimana proses push/pull tidak dapat menggunakan username dan password sebagaimana biasanya. Untuk panduannya, bisa dilihat disini: Github Push/Pull dengan SSH
Kemarin, saya ada kebutuhan lain. Dimana saya memiliki 2 account Github yang berbeda untuk kebutuhan yang berbeda juga. Namun ketika menambahkan pub key pada account Github kedua, Github mendeteksi bahwa pub key tersebut duplicate atau sudah digunakan. Memang benar, pub key tersebut sudah saya gunakan pada account pertama. Akhirnya, saya membuat ssh key baru khusus untuk account Github kedua. Perintahnya lebih kurang seperti berikut
ssh-keygen -f github2
Perintah diatas akan melakukan generate SSH key baru dengan nama github2. Kemudian, isi dari file github2.pub saya upload pada Github.
Namun untuk akses pada Github via SSH, masih terdapat kendala lain. Yaitu akses default key mengarah pada account Github pertama sesuai dengan tulisan sebelumnya: Github Push/Pull dengan SSH. Hal tersebut disebabkan karena aksesnya sama-sama mengarah pada nama github.com
Agar dapat mengarah pada key yang baru, file .ssh/config dilakukan penyesuaian sebagai berikut:
Host github.com HostName github.com User git IdentityFile /home/ahmadimanudin/Documents/github.key IdentitiesOnly yes Host office.github.com HostName github.com User git IdentityFile /home/ahmadimanudin/Documents/github2.key IdentitiesOnly yes Host * AddressFamily inet
Pada file .ssh/config, saya bedakan akses antara account Github pertama (personal) dengan account Github kedua (office). Untuk akses repository Github pertama, cukup akses nama github.com. Namun untuk akses pada repository Github kedua, menggunakan nama office.github.com. Berikut contohnya
Default akses
git clone git@github.com:imanudin11/ebook.git
Menjadi
git clone git@office.github.com:imanudin11/ebook.git
Ada tambahan nama office sebelum github.com sesuai dengan konfigurasi pada file .ssh/config
Silakan dicoba dan semoga bermanfaat 🙂