Login 2 Akun Github Dalam 1 Laptop Secara Bersamaan menggunakan SSH
Hallo guys, saya mau share pengalaman mengenai ini. Dulu aku ada kebutuhan login pada akun github yang berbeda, dimana kedua akun tersebut remote ke repo yang berbeda juga. Ini cara untuknya
Untuk memecahkan masalah ini, kita perlu menggunakan SSH dan harus menavigasikannya dengan menjalankan cd ~/.ssh didalam terminal. Oke lansung saja ke step-stepnya
- Buat Kunci SSH untuk Masing-masing Akun
Kita perlu membuat kunci SSH terpisah untuk setiap akun GitHub.
Buat Kunci SSH untuk Akun Pertama
- Buka Terminal
- Buat kunci SSH untuk akun pertama dengan perintah berikut:
ssh-keygen -t username1 -C "email-akun-pertama@example.com"
- Masukkan nama file untuk akun pertama yang diminta. ini akan menyimpan pada directori .ssh
Buat Kunci SSH untuk Akun Kedua
- Buka Terminal
- Buat kunci SSH untuk akun kedua:
ssh-keygen -t [username2] -C “email-akun-kedua@example.com”
- Masukkan nama file untuk akun ke-2 yang diminta. ini akan menyimpan pada directori .ssh
Tambahkan Kunci SSH ke ssh-agent
Setelah membuat kunci, Kita perlu menambahkan masing-masing kunci SSH ke ssh-agent
.
- Dapat mengikuti langkah ini.
Tambahkan Kunci Publik ke GitHub
a. Untuk Akun Pertama
- Copy key ssh yang ada pada folder ssh dengan masuk ke direktory “.ssh/[namafile1]” Atau, Salin kunci publik berikut dan masukan pada terminal
cat ~/.ssh/[namafile1]
[namaakun1] ini hanya penamaan file pada .ssh
Login ke GitHub akun pertama
- Buka Settings -> SSH and GPG keys -> New SSH Key.
- Paste kunci publik dan beri nama.
b. Untuk Akun Kedua
- Masuk ke direktory .ssh/[namafile2]. Atau, Salin kunci publik:
cat ~/.ssh/[namafile2]
[namaakun1] ini hanya penamaan file pada .ssh
- Login ke GitHub akun kedua
- Buka Settings -> SSH and GPG keys -> New SSH Key
- Paste kunci publik dan beri nama
4. Konfigurasi ~/.ssh/config
untuk Mengelola Banyak Akun
Agar sistem tahu kunci SSH mana yang digunakan untuk setiap akun GitHub, Kita perlu mengonfigurasi file SSH.
- Buka file konfigurasi SSH:
nano ~/.ssh/config
- Tambahkan konfigurasi berikut:
# Akun GitHub Pertama
Host github.com-username1
HostName github.com
User git
IdentityFile ~/.ssh/akun1
# Akun GitHub Kedua
Host github.com-username2
HostName github.com
User git
IdentityFile ~/.ssh/akun2
Gantilah github.com-username1
dan github.com-username2
dengan alias untuk membedakan akun pertama dan kedua.
- Simpan dan keluar (tekan Ctrl + X, lalu Y, dan Enter).
5. Menggunakan Akun yang Tepat untuk Setiap Repositori
Ketika Kita mengatur remote Git untuk repositori, pastikan menggunakan alias yang tepat dari file ~/.ssh/config
.
a. Untuk Akun Pertama (gunakan alias github.com-username1):
git remote set-url origin git@github.com-username1:username/repo.git
b. Untuk Akun Kedua (gunakan alias github.com-username2):
git remote set-url origin git@github.com-username2:username/repo.git
6. Verifikasi Koneksi
Untuk memastikan bahwa setiap akun GitHub terhubung dengan benar, jalankan perintah berikut untuk masing-masing akun:
- Akun Pertama:
ssh -T git@github.com-username1
- Akun Kedua:
ssh -T git@github.com-username2
Jika berhasil, Anda akan melihat pesan seperti ini:
Hi username! You’ve successfully authenticated, but GitHub does not provide shell access.
Selesai..
Untuk swich dari repo pada akun1 ke akun2
git remote set-url origin git@github.com-[username pada .ssh]:[nama organisasi/nama repo].git
Mengubah URL Remote Git
Untuk mengonfirgurasi ulang URL remote untuk repositori yang sedang digunakan agar mengarah ke akun yg berbeda.
Misal, sebelumnya menggunakan Akun Github A dengan repo-A.git. kemudian ingin mengubahnya ke Akun Github B dengan repo-B.git
- Periksa URL Remote: Cek URL remote dari repositori yang sedang Anda gunakan:
git remote -v
Jika saat ini menggunakan akun A, mungkin tampil seperti ini:
origin git@github.com-akunA:usernameA/repoA.git (fetch)
origin git@github.com-akunA:usernameA/repoA.git (push)
2. Ubah URL Remote ke Akun B (jika Anda ingin beralih ke akun B):
git remote set-url origin git@github.com-akunB:repoB.git
Notes : Ini hanya mengalihkan remote repositori bukan mengalihkan akun github
Swich SSH Akun Github
Perbarui Konfigurasi Git untuk Akun B
Jika ingin mengubah informasi pengguna di repositori lokal menjadi akun B, jalankan perintah berikut di dalam repositori yang terkait dengan akun B:
git config user.name "UsernameAkunB"
git config user.email "emailakunB@example.com"
Ini akan memperbarui konfigurasi Git lokal hanya untuk repositori tersebut. Untuk memverifikasinya, jalankan:
git config user.name
git config user.email
Atur Informasi Pengguna Secara Global (Opsional)
Jika Anda ingin menggunakan akun B sebagai default untuk semua repositori baru di komputer Anda, jalankan perintah berikut:
git config --global user.name "UsernameAkunB"
git config --global user.email "emailakunB@example.com"
Notes: Menggunakan
--global
akan mengubah pengaturan untuk semua repositori Git di komputer Anda.
Periksa Konfigurasi yang Berlaku
Periksa konfigurasi Git yang sedang berlaku di repositori lokal dengan menjalankan:
git config --list
Referance : https://gist.github.com/Jonalogy