Apa itu SSH?
SSH adalah kependekan dari Secure Shell yang merupakan sebuah protokol jaringan yang memungkinkan pengguna untuk mengakses dan mengontrol server mereka secara remote dengan aman.
Cara kerja SSH menggunakan model client-server di mana koneksi yang terjadi adalah SSH client melakukan koneksi ke SSH server.
Mengapa SSH Key-Based Authentication?
Melakukan remote ssh dengan metode autentikasi username dan password masih memiliki kelemahan. Yaitu adanya kemungkinan untuk dibobol menggunakan serangan brute force. Belum lagi jika kita me-manage banyak server yang passwordnya mungkin berbeda-beda.
Untuk mengatasi permasalahan itu, kita bisa menggunakan metode autentikasi key untuk remot ssh. Dengan menggunakan autentikasi key, kita cukup melakukan initial connection dengan menggunakan key yang sudah di-generate oleh server atau client.
Metode autentikasi key menggunakan dua buah key yaitu public key dan privat key. Public key akan diletakkan di server, sementara privat key diletakkan di client yang akan meremote server.
Langkah-Langkah Setting dan Penggunaan SSH Key-Based Authentication
Untuk membuat key baik public maupun privat key, dapat dilakukan di sisi server maupun di sisi client. Apabila proses generate key dilakukan di sisi server, maka client harus mengunduh private key yang sudah dibuat oleh server tadi. Sedangkan jika proses generate key dilakukan di sisi client, maka public key harus diupload ke server.
Untuk tutorial kali ini kita akan men-generate key pada sisi client menggunakan PuTTygen.
Sebelumnya pastikan ssh server sudah dijalankan pada sisi server.
Sisi Client
- Buka aplikasi PuTTyGen, kita akan melakukan generate key di sini.
2. Klik “Generate“, proses generate key sedang berjalan gerakkan kursor pada area yg ditunjuk untuk menyelesaikan.
3. Proses generate key berhasil, salin public key kemudian klik “Save private key“. Untuk keamanan yg lebih lanjut key passphrase dapat kita isi.
4. Pastikan simpan private key dengan ekstensi .ppk
Sisi Server
1. Akses server menggunakan user yg akan kita pasang public key. Kemudian buat directory baru dengan nama .ssh pada home directory kita.
userkita@ubuntu:~$ mkdir .ssh
2. Ubah permission directory .ssh menjadi 700
userkita@ubuntu:~$ chmod 700 .ssh
3. Masuk ke directory .ssh dan buat file bernama authorized_keys
userkita@ubuntu:~$ cd .ssh/
userkita@ubuntu:~/ vim authorized_keys
4. Pastekan public key yg telah kita salin dari PuTTygen ke dalam file authorized_keys kemudian simpan.
5. Ubah permission file authorized_keys menjadi 600. Proses selesai.
userkita@ubuntu:~/ chmod 600 authorized_keys
Untuk keamanan lebih lanjut agar server tidak dibrute force matikan akses menggunakan password pada konfigurasi ssh “PasswordAuthentication no”
Setting akses di PuTTy
Untuk dapat menggunakan SSH Key-Based Authentication pada PuTTy diperlukan sedikit penyesuaian dalam cara mengakses server.
1. Buka PuTTy kemudian masukkan ip/host name dan port yg akan diakses.
2. Klik Connection > SSH > Auth, kemudian browse pilih private key yg telah kita simpan dari PuTTygen.
3. Klik Session kembali, kita bisa menyimpan session ini masukkan nama session kemudian klik save. Klik Open untuk membuka session akses ke pada server.