Login 2 Akun Github Dalam 1 Laptop Secara Bersamaan menggunakan SSH

Muhamad Suryana
3 min readOct 10, 2024

--

Source : https://github.blog/wp-content/uploads/2024/04/1200x630-Productivity-Unfurl-LIGHT-Logo@2x.png?w=1600

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

  1. 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.

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

  1. 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

--

--

Muhamad Suryana
Muhamad Suryana

Written by Muhamad Suryana

Started QA journey in 2018, ensuring software quality for user satisfaction—a challenging but rewarding role. About Me : https://linktr.ee/msuryana

No responses yet