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.id
Untuk membuat pasangan kunci kita dapat mengikuti langkah-langkah berikut.
- 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
- 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 namaid_ecdsa
untuk private key danid_ecdsa.pub
untuk public key.
Kunjungi https://note.rkgk.my.idKunjungi 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.
- 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
- 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 fileauthorized_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.idKunjungi https://note.rkgk.my.id
Ubah izin file dengan perintah berikut.
chmod 600 ~/.ssh/authorized_keys
Kunjungi https://note.rkgk.my.id
- 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.idKunjungi https://note.rkgk.my.id
- 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.id
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