sumarsono.com
Take it with a grain of salt


Github Multiple Repositories Deploy Keys Dalam Satu Mesin

Posted on

Github mempunyai fitur Deploy Keys per repository, tempat untuk menaruh public key mesin supaya bisa pull/push tanpa password. Berbeda dengan fitur SSH and GPG Keys yang ada di Personal Setting, Deploy keys bisa spesifik per repository dan bisa diatur ijinnya apakah allow pull only atau allow pull+push. Deploy Keys dibuat untuk memudahkan proses CI/CD atau otomasi ketika deploy project.

Deploy Keys dapat diakses melalui Repo > Settings > Deploy Keys, cek gambar berikut: Github Deploy Keys

Permasalahannya adalah ketika kita hanya punya satu mesin, dan punya banyak repository, ketika kita memasukan public key yang sudah digunakan dalam repo lain, maka github akan komplain kalau key sudah digunakan. Untuk mengatasi hal ini, berikut ini caranya:

Sebagai contoh kasus, aku akan menambahkan Deploy Key untuk dua repo:

ssh-keygen -t ed25519 -f ~/.ssh/repo1 -C "mesin1"
ssh-keygen -t ed25519 -f ~/.ssh/repo2 -C "mesin1"

Selanjutnya, tambahkan public key ke masing-masing repo

cat ~/.ssh/repo1.pub
cat ~/.ssh/repo2.pub

Outputnya copas ke masing-masing deploy keys repo

Bikin ssh config ssh yang isinya

Host lumens github.com
        Hostname github.com
        IdentityFile /home/blackops/.ssh/repo1
Host fast-api github.com
        Hostname github.com
        IdentityFile /home/blackops/.ssh/repo2

Terakhir tinggal pull reponya, tapi harus disesaikan

git pull [email protected]:nalakawula/lumens.git

Harus diubah menjadi

git pull git@lumens:nalakawula/lumens.git

Begitu juga untuk repo satunya lagi. Yes betul, yang diubah adalah hostnya.

Sekian dan terima gaji