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.

Pada artikel kali ini saya akan mencontohkan pada sistem operasi Windows dan Linux.
Sebelum anda melakukan Generate SSH Key, pastika anda sudah menginstall software atau package-package pendukung, seperti:
Catatan: Pastikan pada langkah instalasi mengenai pemilihan
SSH executablenya di ceklis
Kalian bisa mendownload software git pada situs resmi nya disini git-scm.com/downloads
Terdapat 3 cara untuk install OpenSSH pada sistem operasi Windows
SSH executable pastikan di ceklisGit Bash melalui start menu. Setelah terminal terbuka, jalankan perintah beriku ini untuk mengecek apakah OpenSSH sudah terinstall atau belumssh -VMaka akan muncul output tulisan mengenai versi dari OpenSSH nya.
Git Bash SSH VersionPowerShell kemudian ketikan perintah berikut ini:winget -vwinget install --id Git.Git -e --source wingetGit Bash melalui start menu. Setelah terminal terbuka, jalankan perintah beriku ini untuk mengecek apakah OpenSSH sudah terinstall atau belumssh -VMaka akan muncul output tulisan mengenai versi dari OpenSSH nya.
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 -VMaka akan muncul output tulisan mengenai versi dari OpenSSH nya.
Untuk menemukan dimana SSH disintal, jalankan perintah berikut ini:
Get-Command sshmaka hasilnya akan seperti ini:
CommandType Name Version Source
----------- ---- ------- ------
Application ssh.exe 8.6.0.1 C:\Windows\System32\OpenSSH\ssh.exeUntuk mengonfigurasi Git agar menggunakan OpenSSH versi Windows, perbarui perintah SSH dengan git config, seperti:
git config --global core.sshCommand C:/Windows/System32/OpenSSH/ssh.exePada 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.
Untuk melakukan generate SSH key, kalian bisa jalankan perintah berikut ini pada terminal seperti CMD, Git Bash atau Powershell:
Catatan: Ganti
your@email.comdengan 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_rsadan 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]-----+
SSH Keygen WindowsUntuk mengizinkan git menggunakan SSH key, SSH Agent harus berjalan di perangkat. Metode untuk memulai SSH Agent bergantung pada cara OpenSSH diinstal.
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-agentUntuk menjalankan SSH Agent, jalankan perintah berikut ini:
eval $(ssh-agent)Pada terminal PowerShell, cek apakah SSH Agent nya berjalan atau tidak menggunakan perintah Get-Service:
Get-Service ssh-agentJika service tidak berjalan maka akan muncul output seperti berikut ini:
Status Name DisplayName
------ ---- -----------
Stopped ssh-agent OpenSSH Authentication AgentUntuk menjalankan SSH Agent, gunakan perintah berikut ini:
Start-Service ssh-agentUntuk konfigurasi SSH Agent agar memulai setiap kali perangkat dimulai, gunakan perintah Set-Service, berikut ini:
Set-Service -Name sshd -StartupType 'Automatic'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_rsaHasil dari perintah diatas akan muncul sebuah output bahwa idetify tersebut sudah ditambahkan
Identity added: /c/Users/user/.ssh/id_rsa (your@email.com)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
Git Bash Public KeySetelah 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.
GitHub Add SSH Key WindwosSelanjutnya cukup tekan tombol Add SSH Key. Maka sekarang akan muncul list SSH key yang sudah ditambahkan
List Key WindowsUntuk mencoba nya kalian bisa menggunakan perintah git fetch, git pull atau git push. Disini saya akan mencoba melakukan commit dan push pada repository
Test SSH Key WindowsMaka sekarang pada bagian list SSH key nya, key yang digunakan akan menjadi berwarna hijau dan akan ada keterangan kapan terakhir digunakan
Update List Key WindowsPada artikel ini dibuat saya menggunakan linux distribusi archlinux, namun jangan khawatir karena untuk mengenerate SSH key pada distribusi lain juga akan kurang lebih sama.
Untuk melakukan generate SSH key, kalian bisa jalankan perintah berikut ini:
Catatan: Ganti
your@email.comdengan 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_rsadan 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]-----+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 9613Setelah sebelumnya kita mengaktifkan SSH Agent, selanjutnya kita perlu masukan list private key yang akan dimasukan kedalam SSH Agent nya
ssh-add ~/.ssh/id_rsaHasil dari perintah diatas akan muncul sebuah output bahwa idetify tersebut sudah ditambahkan
Identity added: /home/devnull/.ssh/id_rsa (your@email.com)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.pubSetelah 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.
GitHub Add SSH KeySelanjutnya cukup tekan tombol Add SSH Key. Maka sekarang akan muncul list SSH key yang sudah ditambahkan
List SSH KeyUntuk mencoba nya kalian bisa menggunakan perintah git fetch, git pull atau git push. Disini saya akan mencoba melakukan commit dan push pada repository
Test SSH KeyMaka sekarang pada bagian list SSH key nya, key yang digunakan akan menjadi berwarna hijau dan akan ada keterangan kapan terakhir digunakan
Update List SSH KeySaya rasa cukup mudah bukan untuk menambahkah SSH Key pada git (local) dan github (remote).