Terdapat dua cara yang anda boleh gunakan untuk melakukan proses pengesahan apabila anda melakukan akses SSH secara remote ke pelayan. Pertama, anda boleh menggunakan kata laluan dan kedua anda boleh menggunakan SSH Key.
APA ITU SSH KEY?
SSH Key (Secure Shell Key) merupakan kunci kriptografi yang digunakan untuk komunikasi yang selamat antara komputer dan pelayan terutama Linux, melalui rangkaian samada lokal mahupun internet. Kebiasaannya, SSH Key dihasilkan menggunakan algoritma RSA (Rivest-Shamir-Adleman) - 2048. Ia juga menyokong algoritma yang lain seperti DSA (Digital Signature Algorithm) dan ECDSA (Elliptic Curve Digital Signature Algorithm).
SSH Key terdiri daripada dua jenis kunci:
Private Key : Ia merupakan kunci milik pengguna dan ia perlu di simpan dan dijaga dengan rapi. Ia tidak boleh diedarkan kepada sesiapa dan kebiasaannya Private Key akan disimpan dalam fail ‘~/.ssh/id_rsa’ dalam komputer pengguna.
Public Key : Ia perlu diletakkan pada pelayan yang ingin diakses oleh pengguna. Ia perlu disimpan dalam fail ‘~/.ssh/authorized_keys’. Public Key boleh diedarkan secara bebas dan ia tidak perlu disimpan secara rahsia.
BAGAIMANA SSH KEY BERFUNGSI ?
1. Penghasilan SSH Key
Untuk menggunakan SSH Key, anda perlu menghasilkannya terlebih dahulu. Pertama, anda boleh menggunakan arahan “ssh-keygen” pada terminal dalam sistem pengoperasian. Anda boleh memilih pelbagai algoritma penyulitan seperti RSA, DSA, atau ECDSA dan ia juga akan menentukan panjang kunci yang akan dihasilkan. Kedua, anda boleh menghasilkan SSH Key menggunakan perisian alternatif seperti PuTTYgen jika anda menggunakan sistem pengoperasian Windows. Kedua-dua kaedah ini akan menghasilkan Private Key dan Public Key.
2. Pengedaran Public Key
Setelah Private Key dan Public Key dihasilkan, Public Key perlu diletakkan pada pelayan yang ingin diakses oleh pengguna. Ini dilakukan dengan menambah kandungan Public Key ke dalam fail ‘~/.ssh/authorized_keys’ dalam direktori perumah pengguna pada pelayan.
3. Proses Pengesahan
a. Komputer memulakan sambungan SSH ke pelayan dengan menghantar public key ~/.ssh/id_rsa.pub
b. Pelayan menyemak samada public key yang diterima sama dengan public key yang diletakkan dalam fail ‘~/.ssh/authorized_keys’. Jika sama, pelayan akan membalas semula dengan string rawak kepada komputer.
c. Setelah menerima string rawak daripada pelayan, komputer menggunakan private key untuk memberi respon unik kepada pelayan.
d. Pelayan menyemak kebenaran respon daripada komputer menggunakan public key yang dimiliki. Jika betul, pelayan akan memberi kebenaran kepada komputer untuk masuk ke pelayan.
e. Komputer melakukan sambungan SSH ke pelayan dengan jayanya!
4. Penyulitan Sesi
Setelah pengesahan, sesi SSH akan diwujudkan antara komputer dan pelayan. Semua komunikasi semasa sesi termasuk arahan, pemindahan fail, dan pertukaran data, disulitkan menggunakan penyulitan simetri. Kunci sesi (session key) dihasilkan berdasarkan Public Key yang ditukarkan dan parameter lain yang dirundingkan semasa mewujudkan sambungan.
MENGAPA SSH KEY PENTING?
1. Keselamatan ditingkatkan : Kunci SSH menawarkan keselamatan yang lebih kuat berbanding kaedah pengesahan berasaskan kata laluan. Ini kerana Private Key kekal dengan pengguna dan tidak pernah dihantar melalui rangkaian. Oleh demikian, ia akan menyukarkan penyerang untuk mendapatkan akses tanpa kebenaran.
2. Perlindungan terhadap serangan Brute Force : Pengesahan berasaskan kata laluan amat mudah terdedah kepada kepada serangan brute force, di mana penyerang cuba meneka kata laluan berkali-kali sehingga berjaya. Sebaliknya, SSH Key mampu melindungi serangan seperti itu kerana kompleksiti teknologi SSH Key.
3. Penghapusan kata laluan : Dengan menggunakan SSH Key, pengguna tidak lagi perlu bergantung pada kata laluan untuk pengesahan dan ini akan mengurangkan risiko kelemahan berasaskan kata laluan seperti penyalahgunaan kata laluan, pencurian kata laluan dan penggunaan kata laluan yang lemah.
4. Akses jarak jauh dengan selamat : SSH Key membolehkan akses jarak jauh yang selamat ke pelayan dan sistem, sekaligus membolehkan pengguna menjalankan tugas pentadbiran, memindahkan fail, dan melaksanakan arahan tanpa perlu mengorbankan keselamatan.