Cara Login ke VPS Linux Menggunakan SSH untuk Pemula
Setelah membeli VPS Linux, langkah pertama adalah login via SSH (Secure Shell), protokol standar untuk mengakses server Linux dari jarak jauh. Panduan ini mengikuti urutan yang aman: login pertama, membuat user non-root, memasang SSH key, mengganti port, mengaktifkan firewall dan Fail2Ban, lalu mengatasi error yang sering muncul. Contoh memakai Ubuntu 22.04/24.04.
1. Yang Perlu Disiapkan
- IP address VPS (di panduan ini ditulis
IP_VPS) - Username dan password root dari email atau panel provider
- Port SSH, defaultnya 22
- Terminal: PowerShell atau Windows Terminal di Windows 10/11, Terminal di macOS dan Linux (OpenSSH sudah bawaan)
2. Login Pertama Kali
Buka terminal di komputer Anda, lalu jalankan:
ssh root@IP_VPS
Pada koneksi pertama akan muncul pertanyaan verifikasi fingerprint server. Ini wajar: SSH belum mengenal server Anda dan meminta konfirmasi. Ketik yes, tekan Enter, lalu masukkan password root. Fingerprint disimpan di ~/.ssh/known_hosts sehingga pertanyaan ini tidak muncul lagi.
3. Buat User Non-Root dengan Sudo
Bekerja terus sebagai root berisiko, karena satu salah ketik bisa merusak sistem. Buat user harian dengan hak sudo:
adduser adminuser
usermod -aG sudo adminuser
Isi password yang kuat, bidang lain boleh dikosongkan dengan Enter. Ganti adminuser dengan nama pilihan Anda.
4. Buat SSH Key di Komputer Lokal
SSH key jauh lebih aman daripada password karena tidak bisa ditebak lewat brute force. Jalankan di komputer Anda, bukan di VPS:
ssh-keygen -t ed25519 -C "vps-$(date +%Y%m%d)"
Tekan Enter untuk lokasi default dan isi passphrase agar private key tetap terlindungi jika laptop hilang. Hasilnya dua file di folder ~/.ssh/:
id_ed25519: private key, rahasia, jangan pernah dibagikanid_ed25519.pub: public key, boleh dipasang di server
Di PowerShell Windows, $(date +%Y%m%d) tidak berlaku. Cukup ganti komentarnya dengan teks biasa, misalnya -C "vps-saya".
5. Salin Public Key ke VPS
Di Linux dan macOS:
ssh-copy-id adminuser@IP_VPS
Di Windows (PowerShell), ssh-copy-id tidak tersedia, jadi gunakan:
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh adminuser@IP_VPS "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
Uji dengan ssh adminuser@IP_VPS. Anda harus masuk tanpa password (hanya passphrase key bila Anda mengisinya). Jangan lanjut sebelum langkah ini berhasil.
6. Aktifkan Firewall UFW
Buka dulu port yang dibutuhkan sebelum firewall dinyalakan, agar Anda tidak terkunci dari server:
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw allow 2222/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status numbered
Port 2222 dibuka lebih dulu karena akan dipakai pada langkah berikutnya. Port 80 dan 443 hanya perlu jika VPS menjalankan web server.
7. Ganti Port SSH Default
Mengganti port tidak menggantikan keamanan lain, tetapi mengurangi ribuan percobaan login otomatis ke port 22. Edit konfigurasi:
sudo nano /etc/ssh/sshd_config
Tambahkan baris Port 2222 di bawah #Port 22, tanpa menghapus port 22 dulu. Periksa sintaks lalu restart layanan:
sudo sshd -t
sudo systemctl restart ssh
Pada Ubuntu 24.04 yang memakai ssh.socket, jalankan sudo systemctl daemon-reload dan sudo systemctl restart ssh.socket. Jangan tutup sesi yang sedang aktif. Buka terminal baru dan uji:
ssh -p 2222 adminuser@IP_VPS
Kalau berhasil, kembali ke sshd_config, hapus baris Port 22, lalu restart lagi dan tutup port lama di firewall dengan sudo ufw delete allow 22/tcp.
8. Nonaktifkan Login Root dan Password
Setelah login dengan key terbukti berjalan di port baru, kunci akses lewat password:
sudo nano /etc/ssh/sshd_config
Pastikan baris berikut aktif (tanpa tanda #):
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
AllowUsers adminuser
Cek sintaks dengan sudo sshd -t, restart layanan seperti langkah 7, lalu uji login dari terminal baru sebelum menutup sesi lama.
9. Pasang Fail2Ban
Fail2Ban memblokir IP yang berulang kali gagal login:
sudo apt update
sudo apt install fail2ban -y
sudo nano /etc/fail2ban/jail.local
Isi file dengan pengaturan berikut:
[sshd]
enabled = true
port = 2222
maxretry = 3
findtime = 10m
bantime = 1h
backend = systemd
Aktifkan dan cek statusnya:
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd
10. Troubleshooting Error Umum
Permission denied (publickey)
Public key belum terpasang atau izin file salah. Periksa ~/.ssh/authorized_keys di server, pastikan izinnya chmod 700 ~/.ssh dan chmod 600 ~/.ssh/authorized_keys, dan pemiliknya adalah user yang login. Gunakan ssh -v untuk melihat key mana yang dicoba.
Connection refused
Port salah, layanan SSH tidak berjalan, atau firewall menolak. Cek dengan sudo systemctl status ssh dan sudo ufw status, dan pastikan Anda memakai opsi -p dengan port yang benar.
Connection timed out
Paket tidak sampai ke server. Penyebab umum: IP salah, VPS mati, atau firewall (termasuk firewall di panel provider) menjatuhkan koneksi. Cek status VPS di panel provider dan gunakan console web bila ada.
Host key verification failed
Terjadi bila VPS diinstal ulang atau IP dipakai server lain. Jika Anda yakin penyebabnya wajar, hapus catatan lama dengan ssh-keygen -R IP_VPS, lalu sambung ulang.
Too many authentication failures
Terlalu banyak key di ssh-agent. Paksa pakai satu key: ssh -o IdentitiesOnly=yes -i ~/.ssh/id_ed25519 adminuser@IP_VPS.
Ringkasan
Urutan aman untuk VPS baru: login pertama, buat user sudo, pasang SSH key, aktifkan UFW, ganti port, matikan login root dan password, lalu pasang Fail2Ban. Selalu uji login di terminal baru sebelum menutup sesi lama supaya tidak terkunci.
Artikel terkait: Apa Itu VPS? Panduan Lengkap untuk Pemula | Cara Memilih Spesifikasi VPS