Git & GitHub - Menambahkan SSH Key
GitHub saat ini wajib menggunakan SSH Public atau Private keypair untuk melakukan autentikasi dari local (git) ke remote (github), oleh karena itu pada artikel kali ini saya akan membahas bagaimana cara generate SSH key nya.
Arman Dwi Pangestu
31 Oktober 2023•1 menit baca
Pendahuluan
Pada artikel kali ini saya akan mencontohkan pada sistem operasi Windows dan Linux.
Persyaratan
Sebelum anda melakukan Generate SSH Key, pastika anda sudah menginstall software atau package-package pendukung, seperti:
- Git
- OpenSSH
Git
Catatan: Pastikan pada langkah instalasi mengenai pemilihan
SSH executable
nya di ceklis
Kalian bisa mendownload software git pada situs resmi nya disini git-scm.com/downloads
OpenSSH
Terdapat 3 cara untuk install OpenSSH pada sistem operasi Windows
- Download dan Menjalankan Git untuk Windows Installer
- Setelah mendownload dan meingstall software git sebelumnya, pada tahap instalasi terdapat pemilihan
SSH executable
pastikan di ceklis - Setelah instalasi selesai, sekarang buka
Git Bash
melalui start menu. Setelah terminal terbuka, jalankan perintah beriku ini untuk mengecek apakah OpenSSH sudah terinstall atau belum
ssh -V
Maka akan muncul output tulisan mengenai versi dari OpenSSH nya.
- Download Git menggunakan winget untuk Windows Installer
- Cek winget apakah sudah terinstall atau belum dengan cara membuka terminal
PowerShell
kemudian ketikan perintah berikut ini:
winget -v
- Untuk menginstall Git for Windows menggunakan winget, jalankan perintah berikut ini:
winget install --id Git.Git -e --source winget
- Setelah instalasi selesai, sekarang buka
Git Bash
melalui start menu. Setelah terminal terbuka, jalankan perintah beriku ini untuk mengecek apakah OpenSSH sudah terinstall atau belum
ssh -V
Maka akan muncul output tulisan mengenai versi dari OpenSSH nya.
- Install OpenSSH Windows Version
Untuk menginstal OpenSSH versi Windows, ikuti instruksi dalam panduan Get Started with OpenSSH for Windows guide di Microsoft Docs. Setelah OpenSSH diinstal, Anda perlu mengkonfigurasi Git untuk menggunakan OpenSSH.
Di PowerShell, periksa apakah OpenSSH telah berhasil diinstal dengan menjalankan perintah berikut:
ssh -V
Maka akan muncul output tulisan mengenai versi dari OpenSSH nya.
Untuk menemukan dimana SSH disintal, jalankan perintah berikut ini:
Get-Command ssh
maka hasilnya akan seperti ini:
CommandType Name Version Source
----------- ---- ------- ------
Application ssh.exe 8.6.0.1 C:\Windows\System32\OpenSSH\ssh.exe
Untuk mengonfigurasi Git agar menggunakan OpenSSH versi Windows, perbarui perintah SSH dengan git config, seperti:
git config --global core.sshCommand C:/Windows/System32/OpenSSH/ssh.exe
Windows
Pada artikel ini dibuat saya menggunakan Windows 11, namun apabila kalian menggunakan windows 10 tidak usah khawatir karena untuk mengenerate SSH key nya kurang lebih sama.
Generating SSH Key
Untuk melakukan generate SSH key, kalian bisa jalankan perintah berikut ini pada terminal seperti CMD
, Git Bash
atau Powershell
:
Catatan: Ganti
your@email.com
dengan email valid akun github kalian
ssh-keygen -t rsa -b 4096 -C "your@email.com"
Setelah perintah diatas dijalankan, maka akan muncul sebuah prompt untuk menyimpan lokasi hasil generate SSH key, default atau bawaan lokasi penyimpanan nya tersimpan di ~/.ssh/id_rsa
atau C:\Users\user/.ssh/id_rsa
, disini saya akan biarkan secara default saja. Sehingga cukup tekan enter atau kosongkan
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\user/.ssh/id_rsa):
Selanjutnya akan muncul sebuah prompt untuk memasukan passphrase
atau kata sandi, passphrase disini berfungsi untuk melakukan autentikasi tambahan, misalkan ketika kita akan melakukan git fetch
, git pull
atau git push
maka anda harus memasukan passphrase nya (jika anda memasukan passphrase nya disini). Disini saya akan kosongkan saja, sehingga cukup tekan enter
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Maka sekarang akan muncul informasi bahwa SSH key berhasil dibuat
Catatan: Hasil dari SSH key yang di generate akan muncul 2 buat key, yang pertama adalah private key dengan nama file
id_rsa
dan yang kedua adalah public key dengan nama fileid_rsa.pub
. Nah yang akan kita export atau kita simpan kedalam GitHub adalah yang public key.
Your identification has been saved in C:\Users\user/.ssh/id_rsa
Your public key has been saved in C:\Users\user/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:o/0cxLhJ8s279vgg2hrBtXkmfFzmmvfrfOFjkyU6imn your@email.com
The key's randomart image is:
+---[RSA 4096]----+
| |
| |
| |
| o E . |
| . S. + = o |
| . + oo.o . X |
|. .+o.+ * . * o |
|.*.o++= . o + +..|
|=.o+B*.o.. .+++o|
+----[SHA256]-----+
Enable SSH Agent
Untuk mengizinkan git menggunakan SSH key, SSH Agent harus berjalan di perangkat. Metode untuk memulai SSH Agent bergantung pada cara OpenSSH diinstal.
Git for Windows users (including Winget Based Git installations)
Pada terminal git bash, cek apakah SSH Agent berjalan atau tidak menggunakan perintah ps
. Jika ssh-agent
telah berjalan, maka akan muncul output seperti berikut ini:
361 1 361 11876 ? 197609 11:56:04 /usr/bin/ssh-agent
Untuk menjalankan SSH Agent, jalankan perintah berikut ini:
eval $(ssh-agent)
Windows OpenSSH users
Pada terminal PowerShell, cek apakah SSH Agent nya berjalan atau tidak menggunakan perintah Get-Service
:
Get-Service ssh-agent
Jika service tidak berjalan maka akan muncul output seperti berikut ini:
Status Name DisplayName
------ ---- -----------
Stopped ssh-agent OpenSSH Authentication Agent
Untuk menjalankan SSH Agent, gunakan perintah berikut ini:
Start-Service ssh-agent
Untuk konfigurasi SSH Agent agar memulai setiap kali perangkat dimulai, gunakan perintah Set-Service
, berikut ini:
Set-Service -Name sshd -StartupType 'Automatic'
Menambahkan Private Key Kedalam SSH Agent
Setelah sebelumnya kita mengaktifkan SSH Agent, selanjutnya kita perlu masukan list private key yang akan dimasukan kedalam SSH Agent nya dengan perintah berikut:
ssh-add ~/.ssh/id_rsa
Hasil dari perintah diatas akan muncul sebuah output bahwa idetify tersebut sudah ditambahkan
Identity added: /c/Users/user/.ssh/id_rsa (your@email.com)
Copy Public Key dan Paste ke Github Account
Setelah private key kita tambahkan kedalam SSH Agent, selanjutnya kita copy paste public key untuk disimpan di GitHub, untuk melakukannya kalian bisa tampilkan isi dari public key nya menggunakan perintah cat
pada terminal git bash, seperti berikut ini:
cat ~/.ssh/id_rsa.pub
Setelah public key muncul, kalian select dan copy kemudian pergi ke GitHub, kemudian pergi ke menu Settings
> SSH and GPG Keys
> New SSH Key
. Untuk pada kolom title, kalian isikan sesuai dengan yang kalian inginkan (misalkan disini saya akan memberikan title SSH Key Windows 11
), kemudian paste kan public key yang sudah di copy sebelumnya.
Selanjutnya cukup tekan tombol Add SSH Key
. Maka sekarang akan muncul list SSH key yang sudah ditambahkan
Mencoba Menggunakan SSH Key
Untuk mencoba nya kalian bisa menggunakan perintah git fetch
, git pull
atau git push
. Disini saya akan mencoba melakukan commit dan push pada repository
Maka sekarang pada bagian list SSH key nya, key yang digunakan akan menjadi berwarna hijau dan akan ada keterangan kapan terakhir digunakan
Linux
Pada artikel ini dibuat saya menggunakan linux distribusi archlinux, namun jangan khawatir karena untuk mengenerate SSH key pada distribusi lain juga akan kurang lebih sama.
Generating SSH Key
Untuk melakukan generate SSH key, kalian bisa jalankan perintah berikut ini:
Catatan: Ganti
your@email.com
dengan email valid akun github kalian
ssh-keygen -t rsa -b 4096 -C "your@email.com"
Setelah perintah diatas dijalankan, maka akan muncul sebuah prompt untuk menyimpan lokasi hasil generate SSH key, default atau bawaan lokasi penyimpanan nya tersimpan di ~/.ssh/id_rsa
atau /home/user/.ssh/id_rsa
, disini saya akan biarkan secara default saja. Sehingga cukup tekan enter atau kosongkan
Generating public/private rsa key pair.
Enter file in which to save the key (/home/devnull/.ssh/id_rsa):
Selanjutnya akan muncul sebuah prompt untuk memasukan passphrase
atau kata sandi, passphrase disini berfungsi untuk melakukan autentikasi tambahan, misalkan ketika kita akan melakukan git fetch
, git pull
atau git push
maka anda harus memasukan passphrase nya (jika anda memasukan passphrase nya disini). Disini saya akan kosongkan saja, sehingga cukup tekan enter
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Maka sekarang akan muncul informasi bahwa SSH key berhasil dibuat
Catatan: Hasil dari SSH key yang di generate akan muncul 2 buat key, yang pertama adalah private key dengan nama file
id_rsa
dan yang kedua adalah public key dengan nama fileid_rsa.pub
. Nah yang akan kita export atau kita simpan kedalam GitHub adalah yang public key.
Your identification has been saved in /home/devnull/.ssh/id_rsa
Your public key has been saved in /home/devnull/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:o/0cxLhJ8s279vgg2hrBtXkmfFzmmvfrfOFjkyU6imn your@email.com
The key's randomart image is:
+---[RSA 4096]----+
| |
| |
| |
| o E . |
| . S. + = o |
| . + oo.o . X |
|. .+o.+ * . * o |
|.*.o++= . o + +..|
|=.o+B*.o.. .+++o|
+----[SHA256]-----+
Enable SSH Agent
SSH Agent disini berfungsi untuk mengatur variabel-variabel lingkungan yang diperlukan oleh SSH Agent, sehingga kalian dapat menggunakan SSH key kalian dengan lebih mudah tanpa harus memasukan kata sandi atau passphrase setiap kali kalian terhubung ke server yang memerlukan autentikasi SSH.
Catatan: Simpel nya disini SSH Agent akan menyimpan passphrase, sehingga kalian cukup memasukan passphrase ketika pertama kali saja. Apabila terdapat autentikasi yang berhubungan dengan SSH key kembali, kalian tidak perlu mengisikan passphrase kembali.
eval $(ssh-agent -s)
Hasil dari perintah diatas akan muncul sebuah output mengenai PID
Agent pid 9613
Menambahkan private key untuk masuk kedalam SSH Agent
Setelah sebelumnya kita mengaktifkan SSH Agent, selanjutnya kita perlu masukan list private key yang akan dimasukan kedalam SSH Agent nya
ssh-add ~/.ssh/id_rsa
Hasil dari perintah diatas akan muncul sebuah output bahwa idetify tersebut sudah ditambahkan
Identity added: /home/devnull/.ssh/id_rsa (your@email.com)
Copy Public Key dan Paste ke Github Account
Setelah private key kita tambahkan kedalam SSH Agent, selanjutnya kita copy paste public key untuk disimpan di GitHub, untuk melakukannya kalian bisa tampilkan isi dari public key nya menggunakan perintah berikut ini:
cat ~/.ssh/id_rsa.pub
Setelah public key muncul, kalian select dan copy kemudian pergi ke GitHub, kemudian pergi ke menu Settings
> SSH and GPG Keys
> New SSH Key
. Untuk pada kolom title, kalian isikan sesuai dengan yang kalian inginkan (misalkan disini saya akan memberikan title SSH Key ArchLinux
), kemudian paste kan public key yang sudah di copy sebelumnya.
Selanjutnya cukup tekan tombol Add SSH Key
. Maka sekarang akan muncul list SSH key yang sudah ditambahkan
Mencoba menggunakan SSH key
Untuk mencoba nya kalian bisa menggunakan perintah git fetch
, git pull
atau git push
. Disini saya akan mencoba melakukan commit dan push pada repository
Maka sekarang pada bagian list SSH key nya, key yang digunakan akan menjadi berwarna hijau dan akan ada keterangan kapan terakhir digunakan
Penutup
Saya rasa cukup mudah bukan untuk menambahkah SSH Key pada git (local) dan github (remote).