Panduan Lengkap Menggunakan SSH Key Berbanding Password Login

Panduan Lengkap Menggunakan SSH Key Berbanding Password Login

Kenapa Masih Guna Password Untuk Server?

Bayangkan anda memiliki sebuah peti besi yang sangat mahal, tetapi anda hanya menggunakan kunci fizikal yang mudah ditiru atau kod PIN yang boleh diteka oleh sesiapa sahaja. Dalam dunia pengurusan server, menggunakan password untuk login SSH adalah ibarat menggunakan kod PIN yang ringkas itu. Ramai pentadbir sistem atau pemilik laman web di Malaysia masih selesa dengan kaedah tradisional, namun risiko serangan brute-force kini semakin meningkat setiap hari.

Apabila kita bercakap tentang ssh key authentication, kita sebenarnya sedang beralih daripada sistem “sesuatu yang anda tahu” (password) kepada “sesuatu yang anda miliki” (private key). Perbezaan ini bukan sekadar teknikal, tetapi ia adalah perubahan paradigma dalam aspek keselamatan digital. Jika anda menguruskan infrastruktur melalui web hosting Malaysia, memahami mekanisma ini adalah langkah pertama untuk mengelakkan server anda menjadi mangsa serangan bot automatik.

Apa Itu SSH Key Authentication?

Secara ringkasnya, SSH key adalah pasangan kunci kriptografi yang terdiri daripada public key dan private key. Public key disimpan pada server yang ingin anda akses, manakala private key disimpan dengan selamat di dalam komputer peribadi anda. Proses pengesahannya tidak melibatkan penghantaran password melalui rangkaian, sebaliknya ia menggunakan matematik kompleks untuk membuktikan bahawa anda adalah pemilik sah kunci tersebut.

Kelebihan utama kaedah ini adalah ia menghapuskan kelemahan manusia. Kita semua tahu bahawa manusia cenderung mencipta password yang mudah diingati, atau lebih buruk lagi, menggunakan password yang sama untuk pelbagai akaun. Dengan menggunakan ssh key authentication, tiada lagi isu password yang bocor atau diteka oleh penggodam menggunakan kamus kata laluan (dictionary attack).

Perbezaan Ketara: Password vs SSH Key

Untuk memberi gambaran lebih jelas, mari kita lihat perbandingan antara kedua-dua kaedah ini dari sudut teknikal dan praktikal.

Ciri-ciri Password Login SSH Key Authentication
Tahap Keselamatan Rendah ke Sederhana Sangat Tinggi
Risiko Brute-Force Sangat Terdedah Hampir Mustahil
Kemudahan Login Perlu taip setiap kali Automatik (dengan SSH Agent)
Pengurusan Mudah tetapi berisiko Perlu pengurusan fail kunci
Kesan Kebocoran Satu password bocor, akaun terdedah Kunci perlu dicuri dari device fizikal

Mengapa SSH Key Jauh Lebih Selamat?

Sebab utama mengapa pakar keselamatan menyarankan ssh key authentication adalah kerana ia tidak terdedah kepada serangan credential stuffing. Dalam serangan ini, penggodam menggunakan senarai username dan password yang telah bocor dari laman web lain untuk cuba masuk ke server anda. Jika anda menutup akses password dan hanya membenarkan SSH key, serangan ini menjadi sia-sia sepenuhnya.

Selain itu, kunci SSH menggunakan algoritma seperti RSA atau Ed25519 yang memerlukan kuasa pengkomputeran yang luar biasa besar untuk dipecahkan. Sebagai contoh, kunci RSA 4096-bit adalah jauh lebih kuat daripada mana-mana password yang mampu dicipta oleh manusia. Walaupun anda menggunakan password 20 karakter dengan simbol yang pelik, ia masih tidak setanding dengan kekuatan kriptografi sebuah SSH key.

“Keselamatan server bukan tentang membina tembok yang tinggi, tetapi tentang memastikan pintu masuk hanya boleh dibuka oleh pemegang kunci yang sah, bukan sekadar sesiapa yang tahu kata laluan.”

Jika anda serius mahu melindungi data perniagaan anda, melabur masa untuk mengkonfigurasi website security services yang menyeluruh termasuk pengukuhan akses SSH adalah satu keperluan, bukan lagi pilihan.

Kelebihan Tambahan Untuk Developer

Bagi mereka yang sering melakukan deployment kod menggunakan Git atau menjalankan skrip automasi, SSH key adalah penyelamat. Anda tidak perlu lagi memasukkan password berulang kali setiap kali melakukan git push atau scp fail ke server. Dengan menggunakan SSH Agent, kunci anda akan dikendalikan di latar belakang, menjadikan aliran kerja (workflow) anda jauh lebih pantas dan efisien.

Panduan Migrasi: Cara Tukar ke SSH Key Tanpa Terkunci Keluar

Ketakutan terbesar setiap admin server adalah melakukan kesilapan konfigurasi sehingga tidak boleh login ke server sendiri (locked out). Untuk mengelakkan perkara ini, anda perlu mengikut langkah-langkah migrasi secara berperingkat. Jangan sesekali menutup akses password sebelum anda mengesahkan bahawa SSH key anda berfungsi dengan sempurna.

Langkah 1: Menjana Pasangan Kunci (Key Pair)

Buka terminal di komputer anda (Linux, macOS, atau PowerShell di Windows) dan jalankan arahan berikut:

ssh-keygen -t ed25519 -C "email_anda@example.com"

Saya sangat menyarankan penggunaan algoritma Ed25519 berbanding RSA kerana ia lebih pantas dan lebih selamat. Apabila diminta untuk memasukkan passphrase, jangan biarkannya kosong. Letakkan password tambahan pada kunci tersebut. Ini bermakna, jika komputer anda dicuri, pencuri tersebut masih tidak boleh menggunakan kunci SSH anda tanpa passphrase tersebut.

Langkah 2: Menghantar Public Key ke Server

Anda perlu memasukkan isi kandungan public key (fail .pub) ke dalam fail ~/.ssh/authorized_keys di server. Cara paling mudah adalah menggunakan arahan ssh-copy-id:

ssh-copy-id username@ip-server-anda

Jika anda menggunakan Windows tanpa ssh-copy-id, anda boleh menyalin isi fail id_ed25519.pub secara manual dan tampalkannya ke dalam fail authorized_keys di server menggunakan editor seperti Nano atau Vim.

Langkah 3: Pengesahan Sebelum Penutupan Password

Sekarang, cuba login ke server anda dalam terminal baru tanpa menutup sesi terminal sedia ada. Pastikan anda boleh masuk tanpa diminta password server (hanya diminta passphrase kunci jika ada).

Penting: Jangan tutup sesi terminal pertama sehingga anda yakin sesi kedua berjaya login menggunakan SSH key. Ini adalah “talian hayat” anda jika berlaku kesilapan.

Langkah 4: Menutup Akses Password Login

Setelah anda yakin ssh key authentication berfungsi, barulah kita tutup pintu masuk password. Edit fail konfigurasi SSH di server:

sudo nano /etc/ssh/sshd_config

Cari baris berikut dan ubah nilainya kepada no:

  • PasswordAuthentication no
  • ChallengeResponseAuthentication no
  • UsePAM yes (kekalkan yes untuk fungsi lain, tetapi PasswordAuthentication no akan mengatasi password login)

Simpan fail tersebut dan restart servis SSH dengan arahan sudo systemctl restart ssh. Sekarang, server anda hanya boleh diakses melalui kunci SSH sahaja.

Tips Tambahan Untuk Keselamatan Maksimum

Selepas berjaya melaksanakan SSH key, jangan berhenti di situ. Terdapat beberapa langkah tambahan yang boleh anda ambil untuk memastikan server anda benar-benar kebal:

  • Tukar Port Default: Ubah port 22 kepada port rawak (contoh: 2244). Ini akan mengurangkan 90% serangan bot yang hanya mensasarkan port standard.
  • Gunakan Failwall: Gunakan UFW atau Firewalld untuk mengehadkan akses SSH hanya dari alamat IP pejabat atau rumah anda sahaja.
  • Pasang Fail2Ban: Walaupun password sudah ditutup, Fail2Ban tetap berguna untuk menyekat IP yang cuba melakukan scanning pada port server anda.
  • Audit Berkala: Semak fail authorized_keys secara berkala untuk memastikan tiada kunci asing yang dimasukkan tanpa pengetahuan anda.

Jika anda merasa konfigurasi ini terlalu teknikal, anda boleh mendapatkan bantuan profesional melalui Ewallz Solutions untuk memastikan server anda dikonfigurasi mengikut standard industri yang paling selamat.

Kesimpulan

Berpindah daripada password kepada ssh key authentication bukan sekadar trend teknologi, tetapi satu keperluan kritikal dalam era serangan siber yang semakin sofistikated. Dengan mengimplementasikan kunci kriptografi, anda bukan sahaja meningkatkan tahap keselamatan server, malah memudahkan urusan kerja harian anda sebagai developer atau admin.

Ingat, kunci kepada keselamatan adalah disiplin. Pastikan private key anda disimpan dengan selamat, gunakan passphrase yang kuat, dan sentiasa mengikut prosedur migrasi yang betul agar anda tidak terkunci keluar dari server sendiri. Pelaburan masa selama 15 minit untuk setup SSH key hari ini boleh menyelamatkan anda daripada kerugian ribuan ringgit akibat serangan ransomware atau kebocoran data di masa hadapan.

Soalan Lazim (FAQ)

1. Adakah SSH key benar-benar mustahil untuk digodam?

Tiada sistem yang 100% mustahil digodam, tetapi SSH key jauh lebih selamat. Penggodam perlu mencuri fail private key fizikal dari komputer anda. Jika anda menggunakan passphrase pada kunci tersebut, mereka tetap memerlukan password tersebut untuk menggunakan kunci itu.

2. Apa perlu saya buat jika saya hilang private key saya?

Jika anda kehilangan private key dan telah menutup PasswordAuthentication, anda akan terkunci keluar. Satu-satunya cara adalah melalui akses konsol (VNC/KVM) yang disediakan oleh provider hosting anda untuk masuk secara manual dan menambah kunci baru ke dalam fail authorized_keys.

3. Bolehkah saya menggunakan satu kunci SSH untuk banyak server?

Boleh, dan ini adalah amalan biasa. Anda hanya perlu menyalin public key yang sama ke semua server yang anda uruskan. Namun, anda mesti memastikan private key di komputer anda sangat dilindungi.

4. Adakah Ed25519 lebih baik daripada RSA?

Ya, Ed25519 adalah lebih moden, mempunyai saiz kunci yang lebih kecil, dan menawarkan prestasi serta tahap keselamatan yang lebih tinggi berbanding RSA tradisional.

5. Adakah saya perlu menukar kunci SSH saya secara berkala?

Tidak wajib seperti password, tetapi disyorkan untuk menukar kunci jika anda mengesyaki komputer anda telah dikompromi atau jika ada ahli pasukan teknikal yang berhenti kerja dan mempunyai akses ke server tersebut.

Share this post


Open chat
Powered by