Koneksi SSH + Private Key di VPS
Login SSH pertama kali, buat key ed25519, dan matikan login password agar VPS aman.
1. Login pertama kali pakai password
Provider memberi IP + password root. Saat pertama connect akan muncul sidik jari server (fingerprint) — jawab yes hanya bila IP-nya benar milik Anda. Di Windows pakai PowerShell/CMD modern (sudah ada ssh bawaan) atau PuTTY.
ssh root@IP_VPS_ANDA
# contoh sidik jari baru:
# Are you sure you want to continue connecting (yes/no)? yes
2. Buat pasangan key di laptop (bukan di VPS)
Private key tetap di laptop, JANGAN pernah dikirim ke siapa pun. Pakai tipe ed25519 (modern, pendek). Kosongkan passphrase bila ingin login tanpa ketik sandi, atau isi untuk keamanan ekstra. Di Windows jalankan perintah yang sama di PowerShell.
ssh-keygen -t ed25519 -C "laptop-saya" -f ~/.ssh/id_vps_saya
# hasil: ~/.ssh/id_vps_saya (PRIVATE, rahasia)
# ~/.ssh/id_vps_saya.pub (PUBLIC, boleh disebar)
cat ~/.ssh/id_vps_saya.pub
3. Pasang public key ke VPS
Cara termudah: ssh-copy-id (Linux/macOS). Di Windows/PowerShell, salin isi file .pub lalu tempel ke authorized_keys di VPS. Pastikan izin folder/file tepat (700/600) — SSH menolak key bila izin terlalu longgar.
# Cara A (Linux/macOS):
ssh-copy-id -i ~/.ssh/id_vps_saya.pub root@IP_VPS_ANDA
# Cara B (manual, semua OS) — di VPS:
mkdir -p ~/.ssh && chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys # tempel isi file .pub, simpan
chmod 600 ~/.ssh/authorized_keys
4. Tes login pakai key
Login dengan -i menunjuk file private. Bila langsung masuk tanpa password, key sudah benar. PENTING: jangan tutup sesi SSH lama sebelum tes ini berhasil — biarkan satu jendela tetap login sebagai cadangan.
ssh -i ~/.ssh/id_vps_saya root@IP_VPS_ANDA
# berhasil = langsung masuk tanpa diminta password
5. Matikan login password (wajib)
Setelah key teruji di jendela BARU (jendela lama tetap terbuka!), matikan password agar brute-force mustahil. Edit /etc/sshd_config, restart SSH, lalu tes login ulang — harus tetap bisa masuk pakai key.
sudo nano /etc/ssh/sshd_config
# ubah/tambah 2 baris ini:
# PasswordAuthentication no
# PermitRootLogin prohibit-password
sudo systemctl restart ssh
# tes dari jendela baru:
ssh -i ~/.ssh/id_vps_saya root@IP_VPS_ANDA
6. Bikin alias biar pendek
Simpan di ~/.ssh/config laptop supaya cukup ketik ssh vps-saya. Ganti path key di Windows menjadi misalnya C:\Users\NAMA\.ssh\id_vps_saya.
cat >> ~/.ssh/config <<'EOF'
Host vps-saya
HostName IP_VPS_ANDA
User root
IdentityFile ~/.ssh/id_vps_saya
IdentitiesOnly yes
EOF
chmod 600 ~/.ssh/config
ssh vps-saya
7. Kalau terkunci / ditolak
Permission denied (publickey) — key belum terpasang atau izin salah; cek langkah 3 dan pastikan login dengan user yang benar. WARNING: UNPROTECTED PRIVATE KEY FILE (Windows) — perbaiki dengan icacls "key" /inheritance:r /grant:r "%USERNAME%:F". Terkunci total — masuk lewat konsol web provider (VNC/serial, bukan SSH), perbaiki sshd_config dari sana. Jangan pernah membatasi login admin berdasarkan IP bila IP Anda dinamis — key saja + fail2ban sudah cukup.