Skip to content

Tinggalkan password, gunakan key pairs!

🕒 Published at: a year ago


Kunjungi https://note.rkgk.my.id Mungkin apabila ada yang memperhatikan catatan saya, kerap kali untuk masuk kedalam sesi terminal saya menggunakan file keypair.key untuk autentikasi. Ini merupakan key-based authentication. Key-based authentication merupakan metode autentikasi yang lebih aman dari pada password yang kerap kita gunakan. Dengan menggunakan pasangan kunci publik dan privat, server dan client dapat melakukan proses autentikasi secara aman dan terhindar dari keylogger dan CSRF attacks. Berikut akan saya berikan langkah-langkah yang perlu dilakukan untuk menggunakan key-based authentication pada server kita.
Kunjungi https://note.rkgk.my.id

Pembuatan key pairs

Kunjungi https://note.rkgk.my.id Sebelum kita mengubah konfigurasi server agar dapat melakukan autentikasi dengan pasangan kunci, kita perlu membuat pasangan kunci yang akan digunakan. Karena saya menggunakan OS Windows maka pada catatan ini saya akan membuat pasangan kunci dengan aplikasi yang ada pada Windows.
Kunjungi https://note.rkgk.my.id Pada windows kita dapat menggunakan fitur bawaan windows yaitu OpenSSH. Untuk mengecek apakah OpenSSH sudah terinstall pada Windows, kita dapat melakukan pencarian Optional Features di start menu dan mencari OpenSSH seperti pada gambar berikut. Apabila belum ada, maka kita dapat menambahnya dengan Add a feature.
Kunjungi https://note.rkgk.my.idOpenSSH Windows


Untuk membuat pasangan kunci kita dapat mengikuti langkah-langkah berikut.
  1. Kunjungi https://note.rkgk.my.id Buka terminal dengan administrator privileges (run as admin) dan masukan perintah berikut untuk membuat pasangan kunci.
ssh-keygen -t ECDSA

Perintah -t ECDSA akan membuat pasangan kunci dengan algoritma ECDSA, ssh-keygen dapat membuat pasangan kunci dengan algoritma DSA, RSA, ECDSA, atau Ed25519. Kunjungi https://note.rkgk.my.id

  1. Kunjungi https://note.rkgk.my.id Setelah memasukan perintah di atas maka anda akan diminta untuk memasukan passphrase. Ada baiknya untuk menyimpan atau mengingat passphrase ini apabila anda memasukan passphrase pada saat pembuatan pasangan kunci. Pasangan kunci akan tersimpan di folder C:\Users\$user\.ssh dengan nama id_ecdsa untuk private key dan id_ecdsa.pub untuk public key.
    Kunjungi https://note.rkgk.my.idOpenSSH WindowsKunjungi https://note.rkgk.my.id

PERHATIAN

Simpanlah private key di tempat yang aman, karena private key ini setara dengan password anda.

Kunjungi https://note.rkgk.my.id

Konfigurasi SSH server

Kunjungi https://note.rkgk.my.id Setelah kita memiliki pasangan kunci privat dan publik, kita dapat melakukan konfigurasi pada server agar dapat melakukan autentikasi dengan pasangan kunci. Pada catatan ini saya menggunakan server dengan OS Ubuntu 22. Berikut langkah-langkah yang perlu dilakukan.

  1. Kunjungi https://note.rkgk.my.id Hal pertama yang dilakukan adalah masuk kedalam sesi terminal server anda. Setelah masuk kita akan membuat folder untuk public key yang telah kita buat.
mkdir ~/.ssh
chmod 700 ~/.ssh

Kunjungi https://note.rkgk.my.id

  1. Kunjungi https://note.rkgk.my.id Ada banyak cara untuk memindahkan public key ke server kita. Pada catatan ini saya akan meng-copy isi public key ke file authorized_keys secara manual karena menurut saya ini lebih mudah dilakukan untuk skala kecil. Saya akan membuat file authorized_keys dengan menggunakan teks editor nano dengan perintah berikut.
nano ~/.ssh/authorized_keys

Buka file public key dengan mengunakan notepad dan copy seluruh isinya kedalam terminal seperti gambar berikut kemudian simpan.
Kunjungi https://note.rkgk.my.idPublic KeyKunjungi https://note.rkgk.my.id
Ubah izin file dengan perintah berikut.

chmod 600 ~/.ssh/authorized_keys

Kunjungi https://note.rkgk.my.id

  1. Kunjungi https://note.rkgk.my.id Setelah membuat file authorized_keys, kita akan mengubah konfigurasi SSH agar hanya dapat melakukan autentikasi dengan pasangan kunci. Gunakan perintah berikut untuk mengubah konfigurasi SSH.
sudo nano /etc/ssh/sshd_config

Kemudian cari #PasswordAuthentication no dan ubah menjadi PasswordAuthentication no seperti gambar berikut dan simpan.

PERHATIAN

Dengan mengubah konfigurasi ini, maka anda bisa saja terkunci dari server apabila ada kesalahan dalam mengikuti langkah-langkah sebelumnya.

Kunjungi https://note.rkgk.my.idSSH ConfigKunjungi https://note.rkgk.my.id

  1. Kunjungi https://note.rkgk.my.idRestart service SSH dengan mengunakan perintah berikut untuk mengaktifkan konfigurasi yang baru.
sudo systemctl restart ssh

Selamat, server anda sudah dikonfigurasi untuk hanya dapat melakukan autentikasi dengan mengunakan pasangan kunci.
Kunjungi https://note.rkgk.my.id Untuk masuk ke dalam server, buka terminal di lokasi private key tersimpan dan masukan perintah berikut.

ssh -i id_ecdsa user@host

Kunjungi https://note.rkgk.my.idPublic Key

Kunjungi https://note.rkgk.my.id Apabila berhasil anda akan dapat masuk kedalam server anda seperti pada gambar di atas.

Referensi

https://www.redhat.com/sysadmin/key-based-authentication-ssh
https://phoenixnap.com/kb/ssh-with-key
https://www.digitalocean.com/community/tutorials/how-to-configure-ssh-key-based-authentication-on-a-linux-server