Hemat 15% untuk semua layanan hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode: Skills Memulai
Bagian FAQ
Keamanan Linux Server Virtual

Menghubungkan dan Mengonfigurasi SSH pada VPS: Panduan Keamanan Lengkap

Secure shell (SSH) access adalah fondasi manajemen server profesional. Baik Anda menerapkan situs WordPress, mendorong kode melalui Git, atau mengelola aplikasi khusus, SSH memberi Anda terowongan terenkripsi dan terauthentikasi langsung ke server Anda. Panduan komprehensif ini memandu Anda melalui setiap langkah — dari koneksi pertama Anda hingga pengerasan setup Anda terhadap serangan dunia nyata — sehingga Anda dapat mengelola lingkungan VPS Hosting Anda dengan percaya diri.

Mengapa SSH Security Penting

Setiap server yang dapat diakses publik menghadapi serangan brute-force otomatis yang konstan. Dalam hitungan menit setelah VPS aktif, bot mulai memindai port 22 dan mencoba kombinasi username/password yang umum. Konfigurasi SSH yang tidak aman dengan baik adalah salah satu titik masuk paling umum bagi penyerang.

Berita baiknya: beberapa perubahan konfigurasi yang disengaja secara dramatis mengurangi permukaan serangan Anda. Dikombinasikan dengan infrastruktur yang andal — seperti penyimpanan berbasis NVMe dan perlindungan DDoS bawaan — pengaturan SSH yang diperkuat dengan baik memberikan Anda saluran manajemen yang cepat, tangguh, dan benar-benar aman.

Jika Anda belum memilih lingkungan hosting, pertimbangkan untuk menjelajahi paket VPS Hosting yang mencakup akses root penuh, sumber daya khusus, dan fleksibilitas untuk menerapkan setiap langkah keamanan yang dibahas dalam panduan ini.

Prasyarat

Sebelum memulai, pastikan Anda memiliki hal-hal berikut:

PersyaratanDetail
VPS yang berjalanDistribusi Linux apa pun (Ubuntu, Debian, CentOS, AlmaLinux, dll.) dengan OS yang terinstal
Klien SSHLinux/macOS: perintah ssh bawaan. Windows: PuTTY, Windows Terminal, atau WSL
Alamat IP serverDisediakan di panel kontrol hosting Anda setelah provisioning
Kredensial loginNama pengguna default (root atau pengguna yang diaktifkan sudo) dan kata sandi awal
Keakraban terminal dasarKemampuan menjalankan perintah dan mengedit file dengan nano atau vim

> Tip: Jika Anda mengelola beberapa server atau memerlukan antarmuka grafis bersama SSH, lihat Panel Kontrol VPS untuk opsi seperti cPanel, Plesk, dan DirectAdmin yang melengkapi akses baris perintah.

Menghubungkan ke VPS Anda melalui SSH

Di Linux atau macOS

Buka terminal Anda dan jalankan:

ssh username@your_server_ip

Ganti username dengan nama pengguna aktual Anda (biasanya root untuk VPS baru) dan your_server_ip dengan alamat IP publik server Anda.

Contoh:

ssh root@203.0.113.45

Prompt koneksi pertama kali:

The authenticity of host '203.0.113.45 (203.0.113.45)' can't be established.
ED25519 key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

Ketik yes dan tekan Enter. Ini menambahkan kunci host server ke file ~/.ssh/known_hosts Anda. Pada koneksi berikutnya, SSH akan memverifikasi sidik jari ini secara otomatis — jika pernah berubah secara tidak terduga, perlakukan sebagai insiden keamanan potensial.

Masukkan kata sandi Anda saat diminta.

Di Windows Menggunakan PuTTY

  1. Unduh dan buka PuTTY dari putty.org.
  2. Di bidang Host Name (atau alamat IP), masukkan alamat IP server Anda.
  3. Konfirmasi Port diatur ke 22 dan Tipe koneksi adalah SSH.
  4. Klik Open.
  5. Terima sidik jari kunci host saat diminta.
  6. Masukkan nama pengguna dan kata sandi Anda.

> Alternatif Windows 10/11: Windows Terminal dan PowerShell keduanya menyertakan klien OpenSSH bawaan. Anda dapat menggunakan sintaks ssh username@your_server_ip yang sama persis seperti Linux/macOS — tidak diperlukan alat pihak ketiga.

Pengerasan SSH: Konfigurasi Langkah demi Langkah

Semua perilaku SSH dikendalikan oleh satu file konfigurasi:

/etc/ssh/sshd_config

Buka dengan hak istimewa yang ditingkatkan:

sudo nano /etc/ssh/sshd_config

Kerjakan setiap langkah pengerasan di bawah ini. Setelah melakukan semua perubahan, Anda akan memulai ulang layanan sekali — tercakup di bagian berikutnya.

Langkah 1: Ubah Port SSH Default

Port 22 adalah port pertama yang dipindai bot. Memindahkan SSH ke port non-standar menghilangkan sebagian besar kebisingan otomatis di log Anda.

Temukan baris ini:

#Port 22

Ubah ke port pilihan Anda (gunakan angka antara 1024 dan 65535 yang tidak digunakan oleh layanan lain):

Port 2222

Hapus # untuk membuka komentar pada baris tersebut. Simpan dengan CTRL+X, lalu Y, lalu Enter.

> Penting: Sebelum memulai ulang SSH, pastikan firewall Anda mengizinkan port baru. Lihat catatan firewall di bawah.

Perbarui firewall Anda (contoh UFW):

sudo ufw allow 2222/tcp
sudo ufw deny 22/tcp
sudo ufw reload

Perbarui firewall Anda (contoh firewalld):

sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --permanent --remove-service=ssh
sudo firewall-cmd --reload

Langkah 2: Nonaktifkan Login Root

Mengizinkan login root langsung melalui SSH adalah risiko keamanan yang signifikan. Sebagai gantinya, masuk sebagai pengguna biasa dan tingkatkan hak istimewa dengan sudo bila diperlukan.

Di sshd_config, temukan:

PermitRootLogin yes

Ubah menjadi:

PermitRootLogin no

Sebelum menonaktifkan login root, pastikan Anda memiliki pengguna non-root dengan hak istimewa sudo:

# Create a new user
adduser adminuser

# Grant sudo privileges
usermod -aG sudo adminuser

Uji bahwa pengguna ini dapat masuk dan menjalankan perintah sudo *sebelum* Anda menonaktifkan login root dan memulai ulang SSH.

Langkah 3: Nonaktifkan Autentikasi Kata Sandi (Setelah Menyiapkan Kunci)

Setelah autentikasi kunci SSH dikonfigurasi (bagian berikutnya), nonaktifkan login berbasis kata sandi sepenuhnya untuk menghilangkan risiko brute-force:

PasswordAuthentication no

Juga pastikan direktif terkait ini diatur:

ChallengeResponseAuthentication no
UsePAM no

Langkah 4: Direktif Tambahan yang Direkomendasikan

Tambahkan atau verifikasi pengaturan ini di sshd_config untuk baseline pengerasan yang komprehensif:

# Limit authentication attempts per connection
MaxAuthTries 3

# Disconnect idle sessions after 5 minutes
ClientAliveInterval 300
ClientAliveCountMax 2

# Disable empty passwords
PermitEmptyPasswords no

# Restrict SSH to specific users (replace 'adminuser' with your username)
AllowUsers adminuser

# Use only strong protocol version
Protocol 2

# Disable X11 forwarding if not needed
X11Forwarding no

Menyiapkan Autentikasi Kunci SSH

Autentikasi kunci SSH menggantikan kata sandi dengan pasangan kunci kriptografi: kunci pribadi yang tetap berada di mesin lokal Anda dan kunci publik yang berada di server. Bahkan jika penyerang mengetahui nama pengguna Anda, mereka tidak dapat melakukan autentikasi tanpa kunci pribadi Anda.

Langkah 1: Buat Pasangan Kunci SSH (di Mesin Lokal Anda)

ssh-keygen -t ed25519 -C "your_email@example.com"

> Mengapa Ed25519? Lebih cepat dan lebih aman daripada algoritma RSA yang lebih lama. Jika sistem Anda memerlukan RSA untuk kompatibilitas, gunakan ssh-keygen -t rsa -b 4096 sebagai gantinya.

Anda akan diminta untuk memilih lokasi penyimpanan (default ~/.ssh/id_ed25519 sudah cukup) dan menetapkan passphrase. Selalu tetapkan passphrase — ini mengenkripsi kunci pribadi Anda sehingga akses fisik ke mesin Anda tidak secara otomatis membahayakan server Anda.

Output:

Your identification has been saved in /home/you/.ssh/id_ed25519
Your public key has been saved in /home/you/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx your_email@example.com

Langkah 2: Salin Kunci Publik ke VPS Anda

Metode termudah menggunakan ssh-copy-id:

ssh-copy-id -i ~/.ssh/id_ed25519.pub username@your_server_ip

Perintah ini:

  1. Terhubung ke server Anda menggunakan autentikasi kata sandi.
  2. Membuat ~/.ssh/authorized_keys di server jika belum ada.
  3. Menambahkan kunci publik Anda ke file tersebut.
  4. Menetapkan izin yang benar secara otomatis.

Metode manual (jika ssh-copy-id tidak tersedia):

# On your local machine, display your public key
cat ~/.ssh/id_ed25519.pub

# On your server, add it manually
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "paste-your-public-key-here" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

Langkah 3: Verifikasi Login Berbasis Kunci Sebelum Menonaktifkan Kata Sandi

Jangan nonaktifkan autentikasi kata sandi sampai Anda telah mengkonfirmasi bahwa login berbasis kunci berfungsi. Buka jendela terminal baru dan uji:

ssh -i ~/.ssh/id_ed25519 username@your_server_ip -p 2222

Jika Anda terhubung dengan berhasil tanpa diminta kata sandi (hanya passphrase kunci Anda, jika diatur), lanjutkan untuk menonaktifkan PasswordAuthentication di sshd_config.

Memulai Ulang dan Memverifikasi Layanan SSH

Setelah menyimpan semua perubahan ke sshd_config, validasi sintaks konfigurasi sebelum memulai ulang:

sudo sshd -t

Jika tidak ada kesalahan yang dikembalikan, mulai ulang daemon SSH:

sudo systemctl restart sshd

Periksa bahwa layanan dimulai dengan sukses:

sudo systemctl status sshd

Anda harus melihat Active: active (running) dalam output.

> Tips keamanan penting: Jaga sesi SSH Anda saat ini tetap terbuka saat menguji konfigurasi baru di jendela terpisah. Jika ada yang salah, sesi yang ada tetap aktif dan Anda dapat mengembalikan perubahan.

Menguji Konfigurasi Keamanan Anda

Test 1: Hubungkan pada Port Baru dengan Kunci Anda

Dari mesin lokal Anda:

ssh username@your_server_ip -p 2222

Hasil yang diharapkan: Anda masuk menggunakan kunci SSH Anda (diminta untuk passphrase kunci Anda jika Anda menetapkannya, tetapi bukan password server Anda).

Test 2: Konfirmasi Login Root Diblokir

ssh root@your_server_ip -p 2222

Hasil yang diharapkan:

Permission denied (publickey).

atau

root@your_server_ip: Permission denied

Test 3: Konfirmasi Autentikasi Password Dinonaktifkan

ssh username@your_server_ip -p 2222 -o PubkeyAuthentication=no

Hasil yang diharapkan:

Permission denied (publickey).

Jika autentikasi password masih diaktifkan, Anda akan diminta untuk password sebagai gantinya.

Pengerasan Tambahan: Fail2Ban

Fail2Ban memantau file log dan secara otomatis memblokir alamat IP yang menunjukkan tanda-tanda aktivitas berbahaya — seperti percobaan login SSH yang gagal berulang kali. Ini adalah pelengkap penting untuk langkah-langkah pengerasan SSH di atas.

Instal Fail2Ban

Ubuntu/Debian:

sudo apt update && sudo apt install fail2ban -y

CentOS/AlmaLinux/RHEL:

sudo dnf install epel-release -y
sudo dnf install fail2ban -y

Konfigurasi Fail2Ban untuk SSH

Buat file penggantian lokal (jangan pernah mengedit jail.conf default secara langsung):

sudo nano /etc/fail2ban/jail.local

Tambahkan yang berikut:

[DEFAULT]
bantime  = 3600
findtime = 600
maxretry = 5

[sshd]
enabled  = true
port     = 2222
logpath  = %(sshd_log)s
backend  = %(sshd_backend)s

Sesuaikan port agar cocok dengan port SSH kustom Anda. Simpan, kemudian aktifkan dan mulai Fail2Ban:

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Periksa pemblokiran aktif dan status jail:

sudo fail2ban-client status sshd

Mencadangkan Kunci SSH dan Konfigurasi Anda

Server yang terkunci adalah masalah serius. Ikuti praktik-praktik ini untuk menghindarinya:

  • Cadangkan kunci privat Anda ke pengelola kata sandi terenkripsi atau penyimpanan offline.
  • Simpan salinan sshd_config sebelum membuat perubahan: sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
  • Gunakan konsol out-of-band penyedia hosting Anda (akses VNC/KVM melalui panel kontrol) sebagai fallback jika Anda kehilangan akses SSH.
  • Dokumentasikan port kustom Anda — mudah lupa 2222 ketika Anda beralih antar server.

Memasangkan SSH dengan Infrastruktur Hosting yang Tepat

Konfigurasi SSH yang aman hanya sebaik infrastruktur di bawahnya. Pertimbangkan layanan pelengkap ini:

  • Dedicated Servers — Untuk beban kerja yang memerlukan performa maksimal dan isolasi perangkat keras lengkap, server dedicated memberikan kontrol penuh atas lapisan fisik dan perangkat lunak, termasuk konfigurasi SSH.
  • SSL Certificates — Amankan sisi aplikasi yang menghadap web dengan sertifikat SSL/TLS terpercaya, melengkapi keamanan SSH untuk backend server Anda.
  • Domain Registration — Daftarkan dan kelola domain Anda bersama hosting Anda, memudahkan konfigurasi kontrol akses berbasis DNS dan hostname server.

Kesimpulan

Konfigurasi SSH yang tepat adalah salah satu peningkatan keamanan dengan dampak tertinggi yang dapat Anda lakukan pada server Linux apa pun. Untuk merangkum apa yang telah Anda implementasikan:

Langkah KeamananManfaat
Port SSH kustomMenghilangkan pemindaian port-22 otomatis
Login root dinonaktifkanMenghapus akun yang paling ditargetkan dari akses jarak jauh
Autentikasi kunci SSHMenggantikan kata sandi yang dapat ditebak dengan bukti kriptografi
Autentikasi kata sandi dinonaktifkanMenutup vektor serangan brute-force sepenuhnya
Fail2BanSecara otomatis memblokir penyerang yang gigih
MaxAuthTries & timeoutsMembatasi paparan dari serangan lambat atau terdistribusi

Langkah-langkah ini bekerja bersama untuk menciptakan pertahanan berlapis — masing-masing bermakna sendiri, dan jauh lebih kuat dalam kombinasi.

Baik Anda menjalankan satu situs WordPress atau mengelola armada server aplikasi, memulai dengan konfigurasi SSH yang diperkuat membuat Anda mengendalikan situasi. Pasangkan dengan infrastruktur VPS Hosting yang andal, jaga kunci Anda tetap tersimpan, dan Anda akan memiliki lingkungan server yang aman dan profesional yang dibangun untuk bertahan lama.