Cara mengamankan SSH pada VPS Linux

Oleh Pasukan Kejuruteraan ONIE · Dikemas kini 12 November 2026 · 2 minit bacaan

VPS awam menerima percubaan log masuk automatik dalam masa beberapa minit selepas dihidupkan. Langkah-langkah ini menyukarkan serangan ke atas SSH. Ia ditulis untuk Ubuntu atau Debian; jika anda belum mencipta pelayan, anda boleh sewa VPS Linux dan mulakan dengan imej yang bersih. Kekalkan sesi SSH semasa anda sehingga anda telah menguji tetapan baharu dari tetingkap kedua.

1. Cipta pengguna biasa dengan sudo

adduser deploy
usermod -aG sudo deploy

2. Guna kunci SSH dan bukan kata laluan

Pada komputer anda sendiri:

ssh-keygen -t ed25519 -C "you@example.com"
ssh-copy-id deploy@YOUR_SERVER_IP
ssh deploy@YOUR_SERVER_IP

Log masuk sekali dengan kunci untuk mengesahkan ia berfungsi sebelum anda mematikan kata laluan.

3. Matikan log masuk kata laluan dan root

Cipta /etc/ssh/sshd_config.d/99-hardening.conf:

PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
MaxAuthTries 3

Semak sintaks dan muat semula perkhidmatan. Perkhidmatan dipanggil ssh pada Ubuntu dan Debian serta sshd pada sistem berasaskan RHEL:

sudo sshd -t && sudo systemctl reload ssh

Buka terminal kedua dan log masuk semula. Hanya selepas itu tutup sesi lama.

4. Aktifkan firewall

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status verbose

Buka hanya port yang diperlukan, contohnya 80 dan 443 untuk pelayan web. Anda juga boleh mengehadkan SSH kepada alamat IP anda sendiri dengan peraturan firewall dalam panel cloud.

5. Sekat kegagalan berulang dengan Fail2ban

sudo apt install -y fail2ban

Cipta /etc/fail2ban/jail.local:

[sshd]
enabled = true
maxretry = 5
findtime = 10m
bantime = 1h
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd

6. Pasang kemas kini keselamatan secara automatik

sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades

7. Tambahan pilihan

  • Menukar port SSH mengurangkan bunyi log tetapi bukan langkah keselamatan dengan sendirinya.
  • Lindungi kunci persendirian dengan frasa laluan dan simpan salinan sandaran di tempat yang selamat.
  • Semak log masuk dengan last dan sudo journalctl -u ssh --since today.
  • Ambil snapshot selepas pelayan dikonfigurasi, supaya anda boleh memulihkan asas yang bersih.

Jika anda terkunci di luar, gunakan konsol pelayar dalam panel cloud anda untuk log masuk dan membetulkan konfigurasi. Panduan perlindungan DDoS kami membincangkan lapisan pertahanan seterusnya.

Soalan lazim

Adakah selamat untuk mematikan log masuk root?

Ya, jika anda terlebih dahulu mencipta pengguna sudo dan menguji bahawa kuncinya berfungsi. Anda masih boleh menjalankan arahan pentadbiran dengan sudo.

Perlukah saya Fail2ban jika saya hanya guna kunci?

Ia pilihan. Dengan log masuk kata laluan dimatikan, serangan kekerasan (brute force) tidak boleh berjaya, tetapi Fail2ban mengurangkan bunyi log dan beban.

Bagaimana jika saya hilang kunci SSH?

Gunakan konsol dalam panel cloud anda untuk log masuk, tambah kunci awam baharu ke ~/.ssh/authorized_keys dan buang yang lama.

Sumber dan bacaan lanjut

Lebih banyak panduan VPS