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:
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:
- [email protected]:nalakawula/lumens.git
- [email protected]:nalakawula/fast-api.git Pertama, Bikin ssh key pakai ssh-keygen sebanyak jumlah repo, masing-masing keypair disimpan dengan nama yang berbeda
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