Skip to main content
๐Ÿš€ nusa.id cloud server linux indonesialihat paket

Best Practices SSH untuk Production Cloud Server

ยท 3 min read
Aidil Putra
Maintainer

SSH adalah protokol utama untuk mengelola server jarak jauh. Di lingkungan produksi, konfigurasi SSH default tidak cukup aman. Panduan ini mencakup praktik terbaik yang wajib diterapkan di setiap server Nusa Cloud VPS.

Prasyaratโ€‹

1. Buat User Non-Root dengan Sudoโ€‹

Login sebagai root, lalu buat user baru:

adduser namauser

Masukkan password dan isi informasi user (bisa dilewati dengan tekan Enter). Tambahkan user ke grup sudo:

usermod -aG sudo namauser

Verifikasi akses sudo:

su - namauser
sudo whoami

Output harus menampilkan root.

2. Konfigurasi SSH Key-Based Authenticationโ€‹

Buat pasangan SSH key dari mesin lokal Anda:

ssh-keygen -t ed25519 -C "nama-server"

Simpan dengan nama unik, misalnya ~/.ssh/server1_ed25519, dan masukkan passphrase.

Salin public key ke server:

ssh-copy-id -i ~/.ssh/server1_ed25519 namauser@IP_SERVER

Atau manual:

cat ~/.ssh/server1_ed25519.pub | ssh namauser@IP_SERVER "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Verifikasi login tanpa password:

ssh -i ~/.ssh/server1_ed25519 namauser@IP_SERVER

3. Nonaktifkan Root Login dan Password Authenticationโ€‹

Edit file /etc/ssh/sshd_config:

sudo nano /etc/ssh/sshd_config

Ubah atau pastikan nilai berikut:

PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes

Restart SSH:

sudo systemctl restart sshd

โš ๏ธ Warning: Pastikan Anda sudah login dengan SSH key di sesi lain sebelum menutup sesi saat ini. Jika terkunci, gunakan Console VPS dari Client Area.

4. Ubah Port SSH (Opsional)โ€‹

Mengubah port default 22 dapat mengurangi serangan bot otomatis. Tambahkan baris di sshd_config:

Port 2222

Restart SSH, lalu buka port di firewall:

sudo ufw allow 2222/tcp
sudo ufw reload

Jangan lupa tentukan port saat login:

ssh -p 2222 namauser@IP_SERVER

5. Pasang dan Konfigurasi fail2banโ€‹

fail2ban memblokir IP yang mencurigakan setelah gagal login beberapa kali.

sudo apt update
sudo apt install fail2ban -y

Buat file konfigurasi lokal:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local

Cari bagian [sshd] dan aktifkan:

[sshd]
enabled = true
port = ssh
maxretry = 3
bantime = 3600
findtime = 600

Restart fail2ban:

sudo systemctl restart fail2ban
sudo systemctl enable fail2ban

Verifikasiโ€‹

Periksa status SSH:

sudo sshd -T | grep -E "permitrootlogin|passwordauthentication"

Output harus:

permitrootlogin no
passwordauthentication no

Periksa status fail2ban:

sudo fail2ban-client status sshd

Ringkasanโ€‹

LangkahStatus
Non-root user + sudoโœ…
SSH key authenticationโœ…
Root login disabledโœ…
Password auth disabledโœ…
Port non-default (opsional)โšก
fail2ban aktifโœ…

Dengan konfigurasi ini, server Nusa Cloud VPS Anda jauh lebih aman dari serangan brute-force dan akses tidak sah.

Butuh Bantuan?โ€‹

Hubungi Tim Dukungan