Skip to content
VDS · Keamanan

Memperkuat SSH: key, port, pembatasan

Cara mengonfigurasi sshd: login hanya dengan key, membatasi user dan alamat, mengganti port, dan cara agar tidak kehilangan akses dalam prosesnya.

Diperbarui 23 Agustus 2026

SSH adalah satu-satunya pintu masuk ke mesin yang Anda gunakan setiap hari, sekaligus target utama serangan brute-force otomatis. Anda cukup mengonfigurasinya sekali, dan setelah itu tidak perlu perhatian lagi.

Lakukan semua perubahan di file terpisah, /etc/ssh/sshd_config.d/99-hardening.conf — dengan begitu pembaruan paket tidak akan menimpa hasil kerja Anda dan membuat Anda kehilangan akses.

Kunci sebagai pengganti kata sandi

PasswordAuthentication no
PubkeyAuthentication yes
KbdInteractiveAuthentication no
PermitEmptyPasswords no

Sebelum menerapkan, pastikan kunci benar-benar berfungsi: masuklah dengan kunci tersebut di jendela terpisah. Kunci yang ditambahkan di tab "Access" pada panel /hosting/vds/m/<id> akan masuk ke pengguna root; untuk pengguna lain Anda harus menambahkannya ke ~/.ssh/authorized_keys secara manual.

Membuat kunci di sisi Anda:

ssh-keygen -t ed25519 -C "work laptop"

ed25519 lebih pendek dan lebih cepat daripada RSA. Jika alat Anda tidak mendukungnya, gunakan rsa dengan panjang minimal 4096 bit.

Siapa yang boleh masuk

PermitRootLogin prohibit-password
AllowUsers artem deploy
MaxAuthTries 3
LoginGraceTime 20
ClientAliveInterval 300
ClientAliveCountMax 2

AllowUsers adalah aturan paling efektif setelah menonaktifkan kata sandi: brute-force terhadap nama orang lain langsung berhenti. Selengkapnya soal root — nonaktifkan login root dengan kata sandi.

Pembatasan alamat, jika Anda bekerja dari lokasi tetap:

Match Address 203.0.113.5
    PermitRootLogin yes

Mengubah port

Memindahkan SSH dari 22 ke port non-standar tidak melindungi Anda dari serangan yang tertarget, tetapi menghilangkan hampir semua kebisingan dari pemindai otomatis di log Anda.

Port 2222

Urutan langkahnya harus persis seperti ini:

ufw allow 2222/tcp
sshd -t
systemctl restart ssh
ssh -p 2222 artem@<address>
ufw delete allow 22/tcp

Aturan firewall dibuat sebelum restart, dan aturan lama baru dihapus setelah berhasil masuk di port baru. Lihat juga port.

Menerapkan dan memverifikasi

sshd -t
sshd -T | grep -Ei "passwordauth|permitroot|allowusers|port"
systemctl restart ssh

sshd -t memeriksa sintaksis, sshd -T menampilkan konfigurasi akhir yang berlaku — yang itu, bukan yang Anda tulis di file.

Biarkan sesi Anda saat ini tetap terbuka selama mengonfigurasi. Sesi itu akan bertahan melewati restart sshd, dan melaluinya Anda bisa mengembalikan perubahan yang gagal. Jika Anda sampai terkunci di luar — tab "Console" di panel bekerja secara independen dari SSH.

Kesalahan umum

KesalahanAkibatPerbaikan
Menonaktifkan kata sandi tanpa menguji kunciKehilangan akses jaringan sepenuhnyaMasuk melalui konsol panel dan pulihkan pengaturan
Mengedit di file utama di atas baris dari sshd_config.dPengaturan tidak berlakuPeriksa dengan sshd -T
Mengubah port tanpa aturan ufwKehilangan aksesAturan dulu, baru port
Izin pada ~/.ssh lebih longgar dari 700Kunci diabaikan secara diam-diamchmod 700 ~/.ssh, chmod 600 authorized_keys
AllowUsers tanpa nama Anda sendiriAnda mengunci diri sendiriKonsol panel, edit file

Di sshd_config, kemunculan pertama suatu parameter yang menang, dan file dari sshd_config.d disertakan di awal. Jadi verifikasi hasilnya dengan sshd -T alih-alih membaca file.

fail2ban akan menghilangkan sisa kebisingan brute-force.