Sunday 8 May 2022

Konfigurasi SSH Key pada Ubuntu Server 20.04

ssh-key-thumbnail

Pada tutorial ini kita akan membahas tentang konfigurasi kunci SSH pada Ubuntu Server 20.04

SSH atau Secure Shell adalah sebuah protokol jaringan terenkripsi untuk komunikasi dengan antarmuka command line. Khusus untuk server, terlebih jika kalian bekerja dengan Server Ubuntu, kalian akan menghabiskan banyak waktu bergelut dengan terminal command line server yang terhubung melalui ssh.

Baca juga :
How To Install Ubuntu Server 20.04 On Virtual Box
Konfigurasi Dasar Pada Ubuntu Server 20.04

Disini kita akan membahas SSH Key yang merupakan sebuah cara alternatif yang lebih aman untuk meremote server melalui SSH. Dimana sistem keamanan password bisa dengan mudah di crack menggunakan bruteforce, sedangkan untuk SSH Key hampir sangat tidak mungkin untuk di crack.

SSH key dibuat dengan cara melakukan generate sepasang SSH Key (public dan private key), dimana public key akan di simpan ke dalam server, lalu private key akan tersimpan di komputer client yang digunakan untuk mengakses server. Dengan menggunakan SSH key ini, kita tidak perlu lagi menggunakan password untuk login melalui SSH.

Tutorial ini akan menjelaskan cara untuk membuat SSH Key menggunakan 2 sistem operasi, yaitu Linux dan Windows.

Generate SSH Key menggunakan Linux :

Untuk melakukan generate ssh key pada sistem operasi Linux dan sejenisnya, kalian bisa menggunakan terminal. Ketikan perintah :

ssh-keygen

Output
Generating public/private rsa key pair.
Enter file in which to save the key (/your-home/.ssh/id_rsa):

Kemudian buat nama ssh key baru dengan format perintah :

/your-home/.ssh/id_rsa_nama-ssh-key-baru

Contoh :

/Users/Arief/.ssh/id_rsa_webserver1

Output
Enter passphrase (empty no passphrase) :

Kalian bisa gunakan passphrase untuk keamanan yang lebih tinggi lagi atau kosongkan untuk tidak menggunakan passphrase. Pada tutorial ini, kita tidak menggunakan passphrase untuk ssh key kita. Kalian bisa tekan enter untuk melanjutkan.
Tentunya ini menyesuaikan dengan kondisi di lapangan, jika kalian sedang mengkonfigurasi server production yang sebenarnya, sangat disarankan untuk menggunakan passphare untuk kunci sshnya.
Selanjutnya SSH key akan tersimpan didalam directory komputer kita, tepatnya didalam folder .ssh. Selanjutnya kita akan mengecek apakah ssh key kita sudah benar tersimpan atau belum, caranya dengan menggunakan perintah :

ls -all .ssh

Output
id_rsa_webserver1 (private key)
id_rsa_webserver1.pub (public key)

Selanjutnya kita akan copykan public key kita ke dalam ubuntu server kita dengan format perintah :

ssh-copy-id username@ip_server

Contoh :

ssh-copy-id webserver1@192.168.43.14/

Setelah SSH key sudah di copy ke dalam ubuntu server, kita test dengan melakukan login ke dalam server menggunakan ssh key. Format perintahnya seperti dibawah ini :

ssh -i .ssh/your_ssh_key username@ip_server

Kemudian masukkan password server kalian. Harap diingat, untuk login pertama menggunakan ssh key ini, kita akan diminta untuk memasukkan password. Untuk merubah pengaturan agar tidak diminta password lagi, kita ubah pengaturan pada konfigurasi ssh.

sudo nano /etc/ssh/sshd_config

Kemudian lakukan perubahan pada konfigurasi service ssh dengan membuka rule pubkey authentication dan authorized_keys, kemudian kita juga akan melakukan perubahan pada beberapa parameter seperti dibawah ini :

#Authentication :
PermitRootLogin no
MaxAuthries 6
MaxSession 10

PubKey Authentication yes
AuthorizeKeys File .ssh/authorized_keys .ssh/authorized_keys2

#To disable tunneled clear text passwords, change to no here :
PasswordAuthentication no
PermitEmptyPassword no

Kemudian save pengaturan ssh yang sudah kita setting. Tekan CTRL+X untuk melakukan penyimpanan konfigurasi, lalu konfirmasi dengan mengetik Y, lalu terakhir tekan Enter untuk kembali ke terminal utama server.

Setelah merubah konfigurasi pada service ssh, kita bisa coba melakukan login lagi ke dalam server lewat terminal menggunakan format perintah :

ssh -i .ssh/your_ssh_key username@ip_server

Jika semua konfigurasi sudah benar, maka kita bisa masuk ke dalam server melalui ssh tanpa perlu lagi menggunakan password, karena sistem autentikasi untuk login sudah sepenuhnya menggunakan ssh key.

Generate SSH Key menggunakan Windows :

Untuk melakukan generate key pada sistem operasi windows, kita memerlukan tools tambahan yaitu Putty Generator, kalian bisa mendownloadnya disini. Setelah itu install Putty Generator ke komputer kalian dan buka Putty Generator.

Dibawah ini adalah tampilan interface dari aplikasi Putty Generator :

putty_generator_interface

Sebelum melakukan generate key, kita tentukan dulu tipe key yang akan di generate dan besaran bitnya.

Disini kita akan menggunakan tipe key RSA dan besaran bit 3072. Kenapa?

Umumnya besaran bit untuk key yang akan di generate adalah 2048, yang dimana sudah "cukup aman" untuk digunakan. Kalian bisa menggunakan bit key yang lebih besar sampai 4096. Lebih secure?, tentu saja, tetapi kalian juga harus membayar tingkatan keamanan tersebut dengan penggunaan usage cpu server yang akan naik drastis.
Pada intinya jika menggunakan bit key yang lebih besar, maka membutuhkan waktu yang lebih lama juga untuk dilakukan komputasi pada perangkat server.
Jadi opsinya, kalian bisa menggunakan kunci tipe RSA 3072 bit, karena versi terbaru ssh-keygen khususnya untuk platform Linux defaultnya menggunakan 3072 bit.

Pilih tipe key RSA dan isikan besaran bit 3072, lalu klik tombol Generate dan gerakan mouse kalian di area sekitar Key untuk dilakukan generate key. Lengkapnya bisa kalian ikuti langkah dibawah ini :

generate_ssh_key

Setelah itu kita save private key dan public key ke local komputer kita dengan mengklik tombol di area save generated key. Disini kita tidak menggunakan passphrase dalam proses penyimpanan keynya.
Tentunya ini menyesuaikan dengan kondisi di lapangan, jika kalian sedang mengkonfigurasi server production yang sebenarnya, sangat disarankan untuk menggunakan passphare untuk kunci sshnya.
Selanjutnya kita akan remote server kita menggunakan tools Putty untuk : 
  1. Membuka rule authorize keys dan merubah beberapa konfigurasi pada service ssh
  2. Memasukkan public key ke dalam ubuntu server
Ketikan perintah :

sudo nano /etc/ssh/sshd_config

Kemudian lakukan perubahan pada konfigurasi service ssh dengan membuka rule pubkey authentication dan authorized_keys, kemudian kita juga akan melakukan perubahan pada beberapa parameter seperti dibawah ini :

#Authentication :
PermitRootLogin no
MaxAuthries 6
MaxSession 10

PubKey Authentication yes
AuthorizeKeys File .ssh/authorized_keys .ssh/authorized_keys2

#To disable tunneled clear text passwords, change to no here :
PasswordAuthentication no
PermitEmptyPassword no

Kemudian save pengaturan ssh yang sudah kita setting. Tekan CTRL+X untuk melakukan penyimpanan konfigurasi, lalu konfirmasi dengan mengetik Y, lalu terakhir tekan Enter untuk kembali ke terminal utama server.

Selanjutnya kita copykan public key yang tadi sudah kita generate ke dalam ubuntu server, caranya dengan mengetikan perintah :

sudo nano .ssh/authorized_keys

Lalu copykan public key dari Putty Generator ke dalam terminal Putty dengan cara copy-paste (paste dengan cara klik kanan mouse pada terminal), kemudian save pengaturan authorized_keys. Lengkapnya bisa kalian ikuti langkah dibawah ini :

copy_ssh_key_to_ubuntu_server

Tekan CTRL+X untuk melakukan penyimpanan konfigurasi, lalu konfirmasi dengan mengetik Y, lalu terakhir tekan Enter untuk kembali ke terminal utama server.

Selanjutnya kita akan test login menggunakan ssh key ini, sebelumnya kita perlu merubah konfigurasi pada tools Putty ini. Lengkapnya bisa kalian ikuti langkah dibawah ini :

putty_setting

Jika semua konfigurasi yang dilakukan sudah benar, maka ketika login melalui tools Putty, kita akan langsung dibawa ke dalam terminal dan langsung terhubung ke server tanpa harus memasukkan password lagi. Terlihat seperti gambar dibawah ini, ketika masuk ke terminal terdapat keterangan "Authenticating with public key bla bla bla", yang artinya kita berhasil melakukan konfigurasi ssh key ini.

login-ssh-key

Kesimpulan :
Sebagai seorang sysadmin, sudah menjadi kewajiban untuk menjaga keamanan server dari pihak yang tidak bertanggung jawab. SSH Key merupakan konfigurasi yang wajib dilakukan, dimana sistem keamanan password masih bisa ditembus dengan bruteforce, sedangkan untuk SSH Key hampir tidak mungkin untuk bisa di crack, karena ssh key sendiri harus menggunakan 2 key yang identik, dimana public key akan disimpan ke dalam server dan private key akan tersimpan di komputer local.

Itu tadi bagaimana cara untuk melakukan konfigurasi SSH Key Ubuntu Server. Bersamaan dengan post ini juga, selesai sudah materi untuk konfigurasi dasar pada ubuntu server, yang dimana konfigurasi dasar ini wajib kita lakukan agar server aman untuk dioperasikan, aman dalam artian server hanya bisa diakses oleh kita selaku sysadmin dan bisa dioperasikan dalam server sudah siap untuk dilakukan konfigurasi lebih lanjut seperti, konfigurasi LAMP Server sebagai tempat untuk website atau aplikasi berbasis web yang tutorialnya bisa kalian baca disini.
Sekian untuk tutorial cara untuk melakukan konfigurasi SSH Key Ubuntu Server 20.04, semoga ilmu yang kalian dapat dari tutorial ini bisa bermanfaat untuk kalian semua. Terima kasih.
Previous Post
Next Post

Penulis blog dan atlet balap karung Indonesia, lahir di Jakarta 6 Juni. Sedang membentuk pasangan wanita yang manis, berpenampilan dinamis, tidak berkumis, tapi mirip artis.

0 comments: