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
| Kesalahan | Akibat | Perbaikan |
|---|---|---|
| Menonaktifkan kata sandi tanpa menguji kunci | Kehilangan akses jaringan sepenuhnya | Masuk melalui konsol panel dan pulihkan pengaturan |
Mengedit di file utama di atas baris dari sshd_config.d | Pengaturan tidak berlaku | Periksa dengan sshd -T |
| Mengubah port tanpa aturan ufw | Kehilangan akses | Aturan dulu, baru port |
Izin pada ~/.ssh lebih longgar dari 700 | Kunci diabaikan secara diam-diam | chmod 700 ~/.ssh, chmod 600 authorized_keys |
AllowUsers tanpa nama Anda sendiri | Anda mengunci diri sendiri | Konsol panel, edit file |
Di
sshd_config, kemunculan pertama suatu parameter yang menang, dan file darisshd_config.ddisertakan di awal. Jadi verifikasi hasilnya dengansshd -Talih-alih membaca file.
fail2ban akan menghilangkan sisa kebisingan brute-force.