Dalam dunia keamanan siber, mengamankan akses jarak jauh ke sistem adalah fundamental. SSH (Secure Shell) adalah protokol yang banyak digunakan untuk tujuan ini, menyediakan saluran terenkripsi untuk komunikasi. Namun, konfigurasi default SSH seringkali tidak cukup aman. Artikel ini akan memandu Anda melalui proses hardening SSH pada Kali Linux (yang dijalankan di VMware) dari perspektif seorang pemula, berdasarkan pengalaman praktis dalam sebuah proyek. Kita akan membahas langkah-langkah krusial untuk meningkatkan keamanan akses SSH Anda.
Mengapa Hardening SSH Penting?
Bayangkan server Linux Anda sebagai rumah. Akses SSH adalah pintu masuk utama. Jika pintu ini tidak terkunci dengan baik atau menggunakan kunci yang mudah diduplikasi, maka risiko penyusupan akan sangat tinggi. Hardening SSH bertujuan untuk:
- Mengurangi Permukaan Serangan (Attack Surface): Dengan membatasi port, pengguna, dan metode autentikasi yang diizinkan.
- Mencegah Serangan Brute Force: Dengan menonaktifkan autentikasi password dan membatasi percobaan login.
- Meningkatkan Integritas: Dengan menggunakan metode autentikasi yang lebih kuat seperti kunci kriptografi.
Alat yang Digunakan:
- Kali Linux (Guest OS di VMware)
- Host OS (Windows/macOS/Linux) dengan Git Bash/Terminal/PowerShell
- Editor teks Nano (di Kali Linux)
Langkah-langkah Hardening SSH (Remote Tools):




- Membuat Cadangan File Konfigurasi SSH Sebelum melakukan perubahan apa pun, selalu buat cadangan dari file konfigurasi
sshd_config
. Ini adalah langkah keamanan penting untuk pemulihan jika terjadi kesalahan. Bashsudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
- Mengubah Port Default SSH Port default SSH (22) adalah target umum untuk scanner otomatis dan serangan. Mengubahnya ke port non-standar (misalnya 2222) dapat mengurangi “kebisingan” dari upaya scanning yang tidak relevan.
- Edit file
sshd_config
:sudo nano /etc/ssh/sshd_config
- Cari baris
Port 22
dan ubah menjadiPort 2222
. - Simpan (
Ctrl + O
,Enter
) dan keluar (Ctrl + X
) dari Nano. - Restart layanan SSH:
sudo systemctl restart ssh
- Verifikasi port baru aktif menggunakan
sudo ss -tuln | grep 2222
di Kali Linux, dan uji koneksi dari Host OS:ssh namauseruser@IP_KALI_LINUX -p 2222
.
- Edit file
- Menonaktifkan Login Langsung sebagai “root” Akun
root
memiliki hak akses penuh. Mencegah login langsung sebagairoot
via SSH memaksa penyerang untuk menargetkan akun dengan hak istimewa lebih rendah, sehingga mengurangi risiko kompromi total.- Edit file
sshd_config
:sudo nano /etc/ssh/sshd_config
- Cari baris
PermitRootLogin
dan ubah menjadiPermitRootLogin no
. - Simpan dan keluar dari Nano.
- Restart layanan SSH:
sudo systemctl restart ssh
- Verifikasi dengan mencoba login sebagai
root
dari Host OS; seharusnya akan ditolak dengan pesan “Permission denied”.
- Edit file
- Membatasi Percobaan Login Untuk mengurangi efektivitas serangan brute force pada password (selama autentikasi password masih aktif), kita bisa membatasi jumlah percobaan login yang diizinkan sebelum koneksi terputus.
- Edit file
sshd_config
:sudo nano /etc/ssh/sshd_config
- Tambahkan atau ubah baris:
MaxAuthTries 3
- Simpan dan keluar dari Nano.
- Restart layanan SSH:
sudo systemctl restart ssh
- Edit file
- Mengkonfigurasi Autentikasi Kunci SSH (Public Key Authentication) – Langkah Krusial! Ini adalah peningkatan keamanan paling signifikan. Autentikasi kunci SSH menggunakan pasangan kunci kriptografi (privat dan publik) yang jauh lebih kuat dan aman daripada password.
- Periksa atau Buat Kunci SSH di Host OS Anda:
- Di terminal Host OS (misalnya Git Bash), periksa apakah sudah ada kunci di
ls -la ~/.ssh/
. Jika Anda melihatid_rsa
danid_rsa.pub
, berarti Anda sudah memiliki kunci. - Jika belum, buat kunci baru:
ssh-keygen -t rsa -b 4096
. Ikuti instruksi (cukup tekan Enter untuk lokasi default dan passphrase kosong untuk kemudahan awal, meskipun passphrase disarankan untuk keamanan produksi).
- Di terminal Host OS (misalnya Git Bash), periksa apakah sudah ada kunci di
- Salin Kunci Publik ke Kali Linux: Ini adalah langkah yang paling sering mengalami kendala bagi pemula.
- Masalah Umum: Anda mungkin mendapatkan error seperti “Too many arguments” atau “Permission denied (publickey)”.
- Penyebab: Ini seringkali disebabkan oleh izin file yang salah di Kali Linux, folder
.ssh
yang belum ada di direktori home user Kali Linux, atau sintaks perintah yang salah saat menyalin dari Host OS Windows. - Solusi:
- Pertama, pastikan folder
.ssh
dan izinnya benar di Kali Linux. Jika belum ada atau izinnya salah, buat dan perbaiki izinnya di terminal Kali Linux Anda (melalui VMware console): Bashmkdir -p ~/.ssh chmod 700 ~/.ssh
- Kemudian, dari terminal Host OS Anda, salin kunci publik secara manual (karena
ssh-copy-id
terkadang bermasalah di Git Bash dengan path yang mengandung spasi atau interpretasi argumen): Bashcat ~/.ssh/id_rsa.pub | ssh namauser@IP_KALI_LINUX -p 2222 "cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
Anda akan diminta password userkali
untuk proses penyalinan ini.
- Pertama, pastikan folder
- Uji Login dengan Kunci SSH:
- Dari terminal Host OS:
ssh namauser@IP_KALI_LINUX -p 2222
- Verifikasi: Jika berhasil login tanpa diminta password, berarti kunci SSH Anda berfungsi. Ini adalah titik kritis sebelum melanjutkan ke langkah berikutnya. Jika masih diminta password, Anda harus memecahkan masalah ini (biasanya terkait izin file di Kali Linux atau kunci yang tidak tersalin dengan benar) sebelum melanjutkan.
- Dari terminal Host OS:
- Periksa atau Buat Kunci SSH di Host OS Anda:
- Menonaktifkan Autentikasi Password Sepenuhnya Setelah Anda yakin 100% bahwa autentikasi kunci SSH berfungsi, Anda bisa menonaktifkan autentikasi password untuk mencegah serangan brute force pada password. Ini adalah langkah final untuk mengamankan SSH Anda secara signifikan.
- Edit file
sshd_config
:sudo nano /etc/ssh/sshd_config
- Cari baris
PasswordAuthentication
dan ubah menjadiPasswordAuthentication no
. - Simpan dan keluar dari Nano.
- Restart layanan SSH:
sudo systemctl restart ssh
- Verifikasi Akhir:
- Coba login dari Host OS menggunakan password (INI SEHARUSNYA GAGAL):
ssh namauser@IP_KALI_LINUX -p 2222
(Anda akan melihatPermission denied (publickey).
tanpa diminta password). - Coba login menggunakan kunci SSH (INI SEHARUSNYA BERHASIL):
ssh namauser@IP_KALI_LINUX -p 2222
(Anda akan langsung login tanpa diminta password).
- Coba login dari Host OS menggunakan password (INI SEHARUSNYA GAGAL):
- Edit file
Kesimpulan
Melalui proyek hardening SSH ini, kita telah meningkatkan keamanan Kali Linux secara signifikan. Dengan mengubah port default, menonaktifkan login root
langsung, membatasi percobaan login, dan yang terpenting, mengimplementasikan autentikasi kunci SSH serta menonaktifkan autentikasi password, kita telah membangun “pintu belakang” yang jauh lebih kuat dan aman.
Pengalaman mengatasi masalah seperti “Permission denied (publickey)” dan masalah sintaks perintah menegaskan pentingnya pemahaman dasar Linux, ketelitian dalam konfigurasi keamanan, dan kesabaran dalam troubleshooting. Proyek ini adalah langkah awal yang sangat baik dalam memahami dan menerapkan praktik keamanan siber yang esensial.