Membuat SSH Key Lebih aman Dibandingkan dengan Password

 Dapatkan update terbaru Linuxku.com di kanal Telegram https://telegram.me/linuxkudotcom

Tulisan lalu di linuxku.com telah membahas mengenai cara menonaktifkan akun root, demi kepentingan keamanan pada SSH. Kali ini masih seputar sekuriti atau keamaan SSH. Yakni salah satunya dengan memanfaatkan SSH key untuk membypass password atau login tanpa password.


Perlu diketahui bahwasanya login di SSH dengan password dapat memiliki kerentanan terhadap keamanan SSH itu sendiri. Salah satu contoh bahwa password dapat di brute force, untuk jauh mengenai informasi hal ini, Anda bisa membaca tulisan berikut:

Implementasi SSH Key

Pertama-tama Anda login ke peladen (server).

Khusus untuk pengguna GNU/Linux dan MacOS.

Kemudian selanjutnya di komputer lokal (PC atau Laptop Anda) buat SSH key nya menggunakan ssh-keygen.
$ ssh-keygen -t rsa
Tekan <enter> dan Anda akan dibuatkan SSH key tersebut berada dalam direktori misalnya di /home/udin/.ssh.

Enter file in which to save the key (/home/udin/.ssh/id_rsa):

Lalu Anda diminta SSH Passphrase, ini bersifat opsional  akan tetapi, untuk menjadi lebih kuat lagi akan lebih baik diisikan passphrase tersebut. SSH passphrase ini layaknya seperti password. Jadi nanti setelah Anda masuk SSH, Anda akan dimintai kode passphrase.

Dalam contoh tutorial di sini saya mencontohkan dengan mengkosongkan passphrase.

Enter passphrase (empty for no passphrase):

Nanti hasilnya akan seperti keterangan di bawah ini:

ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/udin/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/udin/.ssh/id_rsa.
Your public key has been saved in /home/udin/.ssh/id_rsa.pub.
The key fingerprint is:
7a:a5:0a:c8:21:4e:3f:ed:26:38:5c:74:44:4d:93:67 demo@a
The key's randomart image is:
+--[ RSA 2048]----+
|          .oo.   |
|         .  o.E  |
|        + .  o   |
|     . = = .     |
|      = S = .    |
|     o + = +     |
|      . o + o .  |
|           . o   |
|                 |
+-----------------+

Atau dengan gambar:

Kemudian ketik:

$ cat ~/.ssh/id_rsa.pub

Dan salin kode tersebut nanti di peladen (server), /home/ali/.ssh/authorized_keys atau singkatnya ~/.ssh/authorized_keys.

Masuk ke peladen (server) kembali, lalu buat direktori .ssh di /home/ali/ , maka:

$ mkdir /home/ali/.ssh
atau jika Anda memang sudah login dengan user bernama ali bisa juga dengan perintah berikut:
$ mkdir ~/.ssh

Kemudian berkas (file) bernama authorized_keys di /home/ali/.ssh/ tersebut.

$ touch /home/ali/.ssh/authorized_keys
atau jika Anda memang sudah login dengan user bernama ali bisa juga dengan perintah berikut:
$ touch ~/.ssh/authorized_keys

Lalu paste-kan kode SSH key tadi. Kemudian Anda logout dan tes jika berhasil SSH tersebut tidak akan meminta password lagi, seperti gambar di bawah ini:

Khusus Pengguna Windows

Gunakan PuTTYgen dapat Anda unduh di: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html. Kemudian Login ssh Anda dengan Putty.

Kemudian Buka PuTTYgen:

Kemudian Pilih SSH-2 RSA dan kemudian klik Generate. Geser kursor mouse pada bagian kosong di bawah progressbar. Jika bingung liat video di bawah ini:

Anda akan mendapatkan SSH key tersebut.

Salin (copy) SSH Key tersebut. Lalu paste di ~/.ssh/authorized_keys.

Seperti gambar di bawah ini:

Setelah itu save public key dan private key.

Hasilnya akan seperti gambar di bawah ini:

Nah langkah selanjutnya yakni mencoba login dengan SSH Key tersebut. Buka Putty, kemudian masuk kebagian data dan masukan user untuk login tersebut misalnya ali.

Lalu masuk ke SSH, Pilih Auth, dan masukan privatekey Anda.

Langkah terakhir masuk ke Sessions, pilih Default Settings, masukan IP Server Anda dan save.

Kemudian klik Open dan Anda akan dimintai autorisasi tekan saja Yes.

Maka server akan otomatis membaca SSH Key Anda. Seperti gambar di bawah ini:

Langkah Terakhir Membatasi User

Setelah membuat SSH key langkah selanjutnya yakni membatasi user, tujuannya adalah hanya user tertentu yang boleh login. Contohnya ali. Masuk ke peladen (server) Anda lalu. Sunting (edit), berkas (file) seperti di bawah ini:

$ sudo nano /etc/ssh/sshd_config

Sunting (edit) seperti kode di bawah ini:

UseDNS no
AllowUsers ali
Keluar lalu simpan, dan restart SSH Anda
Pengguna SysVinit (Debian 8 / Ubuntu 16.04 / Centos 7 ke bawah)

 $ sudo service sshd restart

Pengguna Systemd (Kebanyakan Distro Linux Modern)

 $ sudo systemctl restart sshd
Lalu kemudian logout dari peladen (server), dan tes jika semua sesuai sudah benar maka Anda akan otomatis bisa masuk SSH tanpa harus memasukan password, karena SSH key Anda sudah terdaftar dalam peladen (server). Seperti gambar di bawah ini:

Semoga tulisan ini bermanfaat.

Yakin Ngga Mau Diskusi ?

Yuk diskusi cerdas. Gunakan nama asli agar komentar Anda disetujui.