Cara Login SSH dengan SSH Key

Sekarang sudah tahun 2023, sudah saatnya sebaiknya menghentikan login SSH dengan kata sandi dan gantinya adalah login dengan SSH key yang akan dijelaskan pada panduan ini.

Kelebihan Login dengan SSH Key

Kelebihan menggunakan metode login dengan SSH key antara lain sebagai berikut:

  • Login tanpa kata sandi – dengan SSH key kalian bisa login ke server SSH tanpa perlu memasukkan kata sandi setiap kali menghubungkan ke server SSH.
  • Mencegah serangan hacker – karena dapat login tanpa kata sandi, kalian dapat menonaktifkan fitur untuk login dengan kata sandi dan menggunakan SSH key saja untuk login.

Membuat SSH Key

Pertama, buatlah pasangan SSH key dengan perintah berikut:

$ ssh-keygen

Ketika ditanyai dengan pertanyaan lokasi penyimpanan key, masukkan lokasi key atau biarkan saja default (/home/aditya/.ssh/id_rsa) dengan langsung menekan ENTER.

Masukkan passphrase sebanyak dua kali, kalian bisa mengosongkannya dengan langsung menekan tombol ENTER.

Hasilnya kira-kira akan seperti ini:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/aditya/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/aditya/.ssh/id_rsa
Your public key has been saved in /home/aditya/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:qeFz5l1dDEozqjj43Di5V2SaLuCbhGR1mm7ftauBlmc aditya@archlinux
The key's randomart image is:
+---[RSA 3072]----+
|                 |
|                 |
|    . .     + .  |
|   . +   .oo + o |
|  o o . S=. .   o|
| o o.o *o..  . . |
|  ..=.XoE.. . .  |
|   o.*+%o+ o     |
|    o.*==.+.     |
+----[SHA256]-----+

Selamat kalian sudah berhasil membuat pasangan SSH key yang terdiri atas private key (/home/aditya/.ssh/id_rsa) dan public key (/home/aditya/.ssh/id_rsa.pub).

Backup kedua file ini dan jangan berikan private key kepada orang tidak terpercaya.

Login SSH dengan Key

Setelah pembuatan SSH key berhasil, upload public key yang telah dibuat ke server SSH dengan menjalankan perintah berikut:

$ ssh-copy-id root@your_ip

Pada dasarnya, perintah di atas berfungsi untuk memasukkan public key ke server pada file /root/.ssh/authorized_keys.

Hal ini berfungsi agar bisa login tanpa kata sandi menggunakan key ke server.

Setelah key berhasil diunggah, loginkan kembali ke server.

$ ssh root@your_ip

Matikan Konfigurasi Login dengan Kata Sandi

Selagi server SSH terekspos di internet, pastinya ada hacker jahil yang ingin menerobos masuk ke server SSH.

Jika kalian punya server SSH yang terekspos di internet, bisa dibuktikan dengan menjalankan perintah berikut:

$ sudo journalctl -e | grep ssh

Kalau kalian melihat log bahwa ada orang yang mencoba login ke server SSH, sangat disarankan untuk menonaktifkan opsi login pada konfigurasi server SSH agar serangan hacker ini menjadi tak berfaedah.

Pertama, editlah konfigurasi SSH dengan teks editor.

$ sudo nano /etc/ssh/sshd_config

Nonaktifkan autentifikasi dengan kata sandi seperti pada contoh berikut:

PasswordAuthentication no

Setelah itu, jalankan ulang server SSH dengan perintah berikut:

$ sudo systemctl reload ssh