Pertama kali punya VPS, hal pertama yang harus dikuasai adalah SSH. Tanpa SSH, kamu nggak bisa ngapa-ngapain di server. Ini panduan praktisnya dari nol.
Apa Itu SSH?
SSH (Secure Shell) adalah protokol untuk remote login ke server secara terenkripsi. Semua command yang kamu ketik di terminal lokal, dikirim secara aman ke server dan dieksekusi di sana.
Defaultnya jalan di port 22.
1. Connect ke VPS
Waktu beli VPS, provider biasanya kasih:
- IP address server
- Username (biasanya
root) - Password atau file
.pem
Pakai Password
ssh root@123.456.789.0
Masukkan password, done. Tapi ini cara yang kurang aman — sebaiknya segera ganti ke key-based auth.
Pakai Private Key (.pem)
ssh -i ~/.ssh/my-key.pem root@123.456.789.0
Kalau error “Permission denied”, fix permission filenya dulu:
chmod 400 ~/.ssh/my-key.pem
2. Setup SSH Key Authentication
Ini cara yang lebih aman dan lebih praktis — login tanpa password.
Generate Key Pair
Di mesin lokal kamu:
ssh-keygen -t ed25519 -C "haimi@vps"
Tekan Enter semua sampai selesai. Hasilnya:
~/.ssh/id_ed25519→ private key (jangan dikasih ke siapapun)~/.ssh/id_ed25519.pub→ public key (ini yang dikopiin ke server)
Copy Public Key ke Server
ssh-copy-id -i ~/.ssh/id_ed25519.pub root@123.456.789.0
Atau manual:
cat ~/.ssh/id_ed25519.pub | ssh root@123.456.789.0 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Sekarang coba login lagi — harusnya langsung masuk tanpa password.
3. Buat User Baru (Jangan Pakai Root)
Login terus pakai root itu bad practice. Bikin user baru:
adduser haimi
usermod -aG sudo haimi
Copy authorized_keys ke user baru:
rsync --archive --chown=haimi:haimi ~/.ssh /home/haimi
Sekarang login pakai user baru:
ssh haimi@123.456.789.0
4. Hardening SSH
Edit config SSH di server:
sudo nano /etc/ssh/sshd_config
Ubah/tambahkan baris ini:
# Ganti port default (opsional tapi direkomendasikan)
Port 2222
# Matikan login root via SSH
PermitRootLogin no
# Matikan password auth, wajib pakai key
PasswordAuthentication no
# Batasi user yang boleh SSH
AllowUsers haimi
Restart SSH service:
sudo systemctl restart sshd
Penting: Jangan tutup session yang ada sampai kamu verifikasi bisa login dengan config baru. Kalau salah config dan keluar, bisa-bisa lockout sendiri.
5. SSH Config Biar Praktis
Daripada ngetik IP panjang tiap kali, bikin shortcut di ~/.ssh/config:
Host myvps
HostName 123.456.789.0
User haimi
Port 2222
IdentityFile ~/.ssh/id_ed25519
Sekarang cukup:
ssh myvps
Bisa juga untuk multiple VPS:
Host staging
HostName 111.222.333.444
User deploy
Port 22
Host production
HostName 555.666.777.888
User deploy
Port 2222
Cheatsheet
| Command | Fungsi |
|---|---|
ssh user@ip |
Connect ke server |
ssh -p 2222 user@ip |
Connect ke port custom |
ssh -i key.pem user@ip |
Connect pakai private key |
ssh-keygen -t ed25519 |
Generate key pair |
ssh-copy-id user@ip |
Copy public key ke server |
scp file.txt user@ip:~/ |
Upload file via SSH |
ssh -L 8080:localhost:3000 user@ip |
Port forwarding |
Itu dasarnya. Dengan key-based auth + disable password login + non-root user, VPS kamu udah jauh lebih aman dari sebagian besar server di luar sana.