Git & GitHub - Multiple User Account
Pada artikel ini kita akan melakukan configurasi agar Git & GitHub dapat multiple user akun
Arman Dwi Pangestu
17 Januari 2023•1 menit baca
Generate SSH Keys
Untuk membuat atau mengenerate SSH Keys jalankan command berikut:
ssh-keygen -t rsa -C "youremail@yourdomain.com"
Setelah itu akan muncul prompt pertanyaan:
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Prompt tersebut menanyakan PATH file key-nya akan disimpan dimana dan dengan nama apa. Disini saya akan mengisikan /home/user/.ssh/id_rsa_tutorial
sehingga seperti ini:
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa): /home/user/.ssh/id_rsa_tutorial
Setelah prompt tersebut muncul prompt kembali yang menanyakan passphrase, passphrase ini digunakan untuk melakukan verifikasi password / passphrase ketika nanti melakukan push ke repository GitHub. Passphrase ini optional (dapat dikosongkan) jika tidak di isi maka tidak akan verifikasi password / passphrase ketika nanti melakukan push ke repository GitHub
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa): /home/user/.ssh/id_rsa_tutorial
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Output membuat SSH Keys
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa): /home/user/.ssh/id_rsa_tutorial
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_rsa_tutorial
Your public key has been saved in /home/user/.ssh/id_rsa_tutorial.pub
The key fingerprint is:
SHA256:jhvGj38vdcioKKq5eIcT7ptu51u22fZKX0x2YJaSV4s youremail@yourdomain.com
The keys randomart image is:
+---[RSA 3072]----+
| . |
| . + . |
| o E . |
| = . |
| S oo.. |
| . . o .++.. |
| . o B.o. .o. |
|..*.++.Xo.o. |
|=B*Boo=o=+oo. |
+----[SHA256]-----+
Lakukan kembali command ini, untuk membuat SSH Keys yang akan digunakan di akun ke dua atau akun lainnya
Catatan:
Pastikan nama file SSH Keys nya berbeda dengan nama yang sebelumnya, jika sama maka akan di timpa
ssh-keygen -t rsa -C "youremail2@yourdomain2.com"
Sekarang kita mempunyai 2 SSH Keys berbeda yang sudah dibuat:
~/.ssh/id_rsa_tutorial
~/.ssh/id_rsa_turorial2
Menambahkan SSH Keys baru ke akun GitHub yang dipakai
Kita sudah mempunyai SSH Public Key, selanjutnya kita harus menambahkan Public Key ke dalam akun GitHub agar GitHub akun mempercayai key yang telah kita buat. Menggunakan ini nantinya tidak membutuhkan mengetik username dan password setiap kali melakukan git push.
Copy public key nya dengan command:
cat ~/.ssh/id_rsa_tutorial.pub
dan login kedalam GitHub yang ingin ditambahkan:
- Pergi ke
Settings
- Pilih
SSH and GPG Keys
di menu bagian kiri. - Klik dibagian
New SSH Keys
, isikan judul yang sesuai, dan paste public yang sudah di copy tadi di bawahnya - Klik
Add key
- dan selesai!
Catatan:
Lakukan hal yang sama untuk public key yang kedua
~/.ssh/id_rsa_tutorial2.pub
(copy dan daftarkan kedalam akun github)
Mendaftarkan SSH Keys baru dengan ssh-agent
Untuk menggunakan keys, kita harus mendaftarkannya telebih dahulu menggunakan ssh-agent
di mesin kita. Pastikan ssh-agent
telah berjalan menggunakan perintah:
eval $(ssh-agent -s)
Tambahkan keys ke dalam ssh-agent
seperti ini:
ssh-add ~/.ssh/id_rsa_tutorial
ssh-add ~/.ssh/id_rsa_tutorial2
Untuk mengecek apakah keys
nya sudah terdaftar di ssh-agent
menggunakan command
ssh-add -l
Dan untuk menghapus keys
yang terdaftar di ssh-agent
menggunakan command:
ssh-add -D
Selanjutnya adalah membuat ssh-agent
menggunakan SSH Keys untuk SSH Host yang berbeda.
Bagian ini adalah bagian yang penting dan kita mempunyai dua tindakan yang sama yang berbeda (This is the crucial part, and we have two different approaches)
Untuk melakukannya kita menggunakan File Configuration SSH (Step 4) dan hanya satu yang aktif SSH Key pada ssh-agent
di waktu yang sama
Membuat File Configurasi SSH
Disini kita benar - benar menambahkan aturan Configurasi SSH untuk host yang berbeda, menyatakan file identitas mana yang digunakan untuk domain mana.
File Configurasi SSH berada di ~/.ssh/config
. Ubah jika ada atau jika tidak ada kita dapat membuatnya.
cd ~/.ssh
touch config # Membuat file jika tidak ada
nvim config # Membuka file dengan text editor neovim, gunakan text editor yang biasa kalian gunakan
Membuat entri configurasi untuk akun GitHub yang sama dengan yang di bawah ini pada file ~/.ssh/config
kalian:
# Tutorial 1
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_tutorial
# Tutorial 2
Host github.com-tutorial2
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_tutorial2
tutorial2
adalah username github yang akan digunakan nantinya
github.com-tutorial2
adalah notasi yang akan digunakan untuk membedakan pada multiple Git akun. Kalian juga dapat menggunakan notasi lain, seperti tutorial2.github.com
Pastikan kalian konsisten dengan nama notasi hostname yang kalian gunakan. Ini berhubungan ketika kalian melakukan clone repository atau ketika kalian set untuk remote origin pada sebuah local repository.
Configurasi diatas befungsi pada ssh-agent
untuk:
- Menggunakan
id_rsa_tutorial
sebagai kunci untuk apapun Git URL menggunakan@github.com
- Menggunakan
id_rsa_tutorial2
sebagai kunci untuk apapun Git URL menggunakan@github.com-tutorial2