Pada artikel ini kita akan melakukan configurasi agar Git & GitHub dapat multiple user akun

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_tutorialSetelah 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
SSH KeyKita 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.pubdan login kedalam GitHub yang ingin ditambahkan:
SettingsSSH and GPG Keys di menu bagian kiri.New SSH Keys, isikan judul yang sesuai, dan paste public yang sudah di copy tadi di bawahnyaAdd key - dan selesai!
GitHub Add SSH KeyCatatan:
Lakukan hal yang sama untuk public key yang kedua
~/.ssh/id_rsa_tutorial2.pub(copy dan daftarkan kedalam akun github)
GitHub Add SSH Key 2Untuk 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
SSH Key AddUntuk mengecek apakah keys nya sudah terdaftar di ssh-agent menggunakan command
ssh-add -l
SSH Key Add ListDan untuk menghapus keys yang terdaftar di ssh-agent menggunakan command:
ssh-add -D
SSH Key Add DeleteSelanjutnya 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
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 gunakanMembuat 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_tutorial2tutorial2 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:
id_rsa_tutorial sebagai kunci untuk apapun Git URL menggunakan @github.comid_rsa_tutorial2 sebagai kunci untuk apapun Git URL menggunakan @github.com-tutorial2