CategoriesLinux

Konfigurasi SSH Key-Based Authentication Pada Server Linux

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.com
  • Connection > SSH > Auth > Private key file for authentication : masukkan path file id_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.com
  • Advanced SSH settings > Use private key : centang checkbox dan masukkan path file id_ed25519.ppk Anda.

Setelah memasukkan kedua data dalam field tersebut, tekan tombol OK untuk login ke server tujuan.

Selamat mencoba.

Leave a Reply

Your email address will not be published. Required fields are marked *