Dalam kasus ini, saya akan berbagi tentang cara saya menggunakan beberapa akun git yang berbeda dengan host git yang berbeda juga.
Contohnya seperti di atas, kita punya banyak akun untuk akses ssh git.
Bagaimana caranya?
Pertama kita membuat ssh key untuk masing-masing user, dari gambar di atas
berarti ssh key yang perlu dibuat yaitu ssh key untuk Company A
, Company B
,
Personal Akun
. Jangan lupa untuk memberi nama setiap ssh key yang kita buat
seperti kegunaannya, misal untuk Company A
diberi nama id_rsa_company_a
kecuali untuk yang personal, biarkan default (langsung tekan enter saja).
Generate SSH Key Pair
Lalu, bikin file config
tanpa ekstensi di dalam folder ~/.ssh
, folder
~/.ssh
ini adalah folder yang secara default ssh-key
kita berada.
Host github.com
Hostname github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Host gitlab.com
Hostname gitlab.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Host company_a.github.com
Hostname github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_company_a
Host company_b.gitlab.com
Hostname gitlab.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_company_b
Untuk konfigurasi yang pertama dan kedua itu kita menggunakan ssh key personal
kita dengan host untuk gitlab
dan github
atau bisa juga tanpa konfigurasi
itu. Saya prefer untuk mengisi juga untuk personal biar sekalian ada
konfigurasinya.
Untuk konfigurasi yang ketiga dan keempat, itu konfigurasi untuk masing-masing
company, kita hanya perlu menambahkan host dengan subdomain nama companynya,
lalu untuk hostname adalah ssh host dimana company tersebut menggunakan ssh git.
Di sana saya isi github.com
untuk Company A
dan gitlab.com
untuk
Company B
sesuai yang dipakai masing-masing company.
Penggunaannya kita cukup menambahkan subdomain ketika akan clone suatu project dan tidak perlu menambahkan jika itu akan diclone melalui akun personal.
Contohnya, misal di Company A
mempunyai repository Admin Dashboard
ketika
kita ingin mengclone, kita cukup menggunakan perintah seperti ini
git clone git@company_a.gitlab.com:company_a/admin-dashboard.git
Misal di Company B
memiliki repository Landing Web
maka jadinya
git clone git@company_b.gitlab.com:company_b/landing-web.git
Untuk akun personal, kita tidak perlu menambahkan
git clone git@github.com:afrijaldz/blog.git
Setelah diclone, konfigurasi ssh akan mengikuti secara default. Jadi ketika akan
push
atau pull
sudah mengarah ke Host
masing-masing.
Untuk penjelasan dengan video (berbahasa inggris), bisa dilihat di sini
Semoga bermanfaat.