Apa itu SSH Key-Based Authentication?
SSH Key-based Authentication adalah mekanisme otentikasi mengunakan SSH Key. SSH Key adalah sepasang kunci kriptografi (private key dan public key) yang dapat digunakan untuk melakukan otentikasi SSH client. Private key bersifat rahasia, harus disimpan oleh pemilik key dan tidak boleh diberikan kepada pihak lain. Sebaliknya, public key bersifat terbuka, boleh diberikan kepada pihak lain untuk melakukan otentikasi terhadap akses yang dilakukan oleh pemilih private key.
Lebih detail tentang cara kerja SSH Key-based authentication dapat dibaca disini.
Cara membuat SSH Key di Linux
Untuk membuat SSH key di Linux, jalankan perintah berikut:
$ ssh-keygen -t ed25519
Berikut adalah penjelasan perintah tersebut:
ssh-keygen: OpenSSH authentication key utility.
-t: Jenis ssh key. Saya sarankan menggunakan ed25519.
Saat proses pembuatan key, anda akan diminta memasukkan password. Password ini bersifat opsional, boleh anda kosongkan sehingga dapat login menggunakan SSH key tanpa perlu memasukkan password.
Secara _default_ key yang baru akan tersimpan di direktori ~/.ssh/
. Ada dua file yang dihasilkan oleh perintah tersebut.
id_ed25519
adalah private key anda.id_ed25519.pub
adalah public key anda.
Konversi Private Key Agar Dapat Digunakan Di Windows
File id_ed25519
adalah private key yang menggunakan format OpenSSH. Private key ini dapat digunakan di Linux dan Mac, namun tidak dapat digunakan di Windows.
Agar dapat digunakan di Windows, file id_ed25519 perlu dikonversi menggunakan puttygen
. Jalankan perintah berikut untuk mengubah format private key agar dapat digunakan di Windows.
$ puttygen ~/.ssh/id_ed25519 -o ~/.ssh/id_ed25519.ppk
Bila semua perintah tersebut berjalan dengan benar, maka dalam direktori ~/.ssh/ anda akan terdapat 3 file berikut
id_ed25519
adalah private key anda yang dapat digunakan di Linux dan Mac.id_ed25519
.ppk adalah private key anda yang dapat digunakan di Windows.id_ed25519.pub
adalah public key anda.
Memasang Public Key di Server Tujuan
Bila ingin menggunakan SSH Key yang baru dibuat untuk login ke sebuah server, jalankan perintah dengan berikut:
$ ssh-copy-id -i ~/.ssh/id_ed25519 <user>@<alamat IP atau Hostname server>
Misalnya
$ ssh-copy-id -i ~/.ssh/id_ed25519.pub budi@192.168.1.1
Login ke Server menggunakan SSH Key
Prosedur login melalui komputer Linux atau Mac
Untuk login melalui komputer Linux atau Mac menggunakan SSH Key, jalankan prosedur berikut.
Simpan SSH Key di Lokasi Yang Aman
Saya sarankan anda menyimpan SSH key anda di direktori ~/.ssh/
. Lalu ubah permission file tersebut agar tidak dapat diakses user lain dengan menjalankan perintah berikut.
$ chmod 700 ~/.ssh/
$ chmod 600 ~/.ssh/*
Login menggunakan command line
Anda dapat login menggunakan command line dengan format perintah berikut
$ ssh -i ~/.ssh/id_ed25519 <username>@<alamat IP atau hostname server>
Misalnya
$ ssh -i ~/.ssh/id_ed25519 budi@budiserver.com
Login menggunakan ssh config
Bila tidak ingin mengetik perintah command line yang terlalu panjang, anda dapat menuliskannya ke dalam file ~/.ssh/config
. Berikut adalah contoh file ~/.ssh/config
untuk login ke budiserver.com
dengan user budi
menggunakan SSH key.
Host budiserver
User budi
IdentityFile ~/.ssh/id_ed25519
Hostname budiserver.com
Setelah membuat file ~/.ssh/config
tersebut anda dapat login menggunakan perintah yang lebih ringkas. Bila menggunakan contoh file ~/.ssh/config
di atas, anda dapat login ssh ke budiserver.com
hanya dengan perintah berikut
$ ssh budiserver
Prosedur login melalui komputer Microsoft
Ada beberapa cara untuk login SSH melalui komputer. Pada tulisan ini saya akan memberi contoh login SSH menggunakan putty dan MobaXterm.
Login menggunakan putty
Buka aplikasi putty. Bila belum memilikinya, Anda dapat mengunduhnya melalui link berikut dan menginstallnya di komputer Anda. Berikut ini adalah tampilan putty.
Berikut ini adalah field yang perlu Anda isi bila ingin login menggunakan SSH private key:
Session > Host Name (or IP address)
: masukkan hostname atau IP server, misalnya budiserver.comConnection > SSH > Auth > Private key
file for authentication : masukkan path fileid_ed25519
Anda.
Setelah memasukkan kedua data dalam field tersebut, tekan tombol Open
untuk login ke server tujuan.
Login menggunakan MobaXterm
Buka aplikasi MobaXterm. Bila belum memilikinya, Anda dapat mengunduhnya melalui link berikut dan menginstallnya di komputer Anda. Berikut ini adalah tampilan MobaXterm.
Untuk login ke server menggunakan SSH key, prosedur yang perlu Anda lakukan adalah membuat session baru dengan cara membuka menu Sessions > New session > SSH
hingga muncul window berikut
Berikut ini adalah field yang perlu Anda isi
Basic SSH settings > Remote host
: isi dengan alamat IP atau hostname server tujuan, misalnya: budiserver.comAdvanced SSH settings > Use private key
: centang checkbox dan masukkan path fileid_ed25519.ppk
Anda.
Setelah memasukkan kedua data dalam field tersebut, tekan tombol OK
untuk login ke server tujuan.
Selamat mencoba.