Cara Setting SSH Key di GitLab
Memasang SSH key berfungsi sebagai pengganti password, selain lebih aman, kita tidak perlu lagi mengetikkan password ketika menjalankan perintah git yang mengharuskan login. Misalnya pada saat melakukan git push ke repository.
0. Membuat SSH Key di Linux
Langkah awal yang harus dikerjakan yaitu membuat (generate) SSH key di pc Linux kita.
1 | ssh-keygen -C "linus@laptop" |
Lalu jalankan perintah.
1 2 | eval $(ssh-agent -s) ssh-add ~/.ssh/key-namakey |
Copy isi dari public key hasil generate namakey.pub.
1 | cat ~/.ssh/namakey.pub |
1. Masukkan SSH Key ke GitLab
Selanjutnya memasukkan SSH key yang telah dicopy ke akun GitLab.
Login GitLab, masuk di menu Settings->SSH Keys, paste di Key, lalu Add key.
2. Pengujian
Kemudian melakukan pengujian, apakah key tadi berhasil dikenali.
1 2 | ssh -T git@gitlab.com Welcome to GitLab, @username! |
Pengujian berikutnya mengakses repository.
Buat repository untuk testing.
Lalu clone repository di local, tambah file, dan push.
1 2 3 4 5 6 7 8 | git clone git@gitlab.com:username/testing.git cd testing git config user.name "Nama Akun GitLab" touch README.md git add README.md git commit -m "add README" git push -u origin master |
3. Banyak SSH Key dan Akun GitLab
Seorang developer bisa saja memiliki banyak akun GitLab di mana setiap akun GitLab memakai SSH key yang berbeda. Ketika melakukan pengujian ssh -T [email protected] yang terbaca hanya salah satu akun GitLan saja. Untuk kasus seperti ini kita harus membuat file config di direktori .ssh.
1 | nano ~/.ssh/config |
Isinya.
1 2 3 4 5 6 7 8 9 10 11 12 | Host * IdentitiesOnly=yes Host gitlab.com-akunsatu HostName gitlab.com IdentityFile /home/userpc/.ssh/key-akunsatu User git Host gitlab.com-akundua HostName gitlab.com IdentityFile /home/userpc/.ssh/key-akundua User git |
Pengujiannya.
1 2 | ssh gitlab.com-akunsatu ssh gitlab.com-akundua |
Lakukan juga perubahan pada file config repository local.
1 | nano .git/config |
Config sebelumnya
1 2 | [remote "origin"] url = git@gitlab.com:username/repository.git |
Ubah menjadi
1 2 | [remote "origin"] url = git@gitlab.com-akunsatu:username/repository.git |
Selamat mencoba 🙂
Mantap Mas Ilmunya, semoga semakin barokah.