Promo Domain .biz.id hanya Rp2.500 Cek domain →
JowHost
VPS & Server

SSH Key untuk VPS: Login Tanpa Password dan Menutup Login Password dengan Benar

Panduan SSH key VPS: buat kunci ed25519, pasang dari Linux, Mac, atau Windows, lalu matikan login password di Ubuntu 24.04 tanpa terjebak file cloud-init.

Zulfianto 3 menit baca
Terminal berisi perintah ssh-keygen dan penolakan login password di VPS
Daftar isi
  1. Yang dibutuhkan
  2. 1. Membuat SSH key di komputer Anda
  3. 2. Memasang SSH key di VPS
  4. 3. Mematikan login password: jebakan file cloud-init
  5. 4. Pastikan password benar-benar ditolak
  6. Kalau terkunci di luar
  7. Langkah berikutnya

Begitu VPS menyala dengan IP publik, port 22 mulai didatangi bot yang mencoba ribuan kombinasi password. Panduan SSH key VPS ini mengganti login password dengan pasangan kunci, lalu menutup login password sama sekali. Di langkah terakhir ada jebakan yang membuat banyak tutorial gagal: setelah sshd_config diubah, server ternyata masih menerima password.

Diuji 5 November 2026 di Super Cloud Regular 1 vCPU · 2 GB, Ubuntu 24.04.5 LTS. Semua keluaran di bawah adalah hasil asli dari server uji.

Yang dibutuhkan

  • VPS Linux dengan akses root. Cara login pertama kali dengan password ada di panduan Login ke VPS lewat SSH.
  • Komputer dengan OpenSSH: Linux dan macOS sudah punya, Windows 10/11 juga sudah menyertakannya (perintah ssh dan ssh-keygen di PowerShell).
  • Satu terminal yang tetap login ke VPS sampai semua langkah selesai. Ini cadangan kalau ada salah ketik.

1. Membuat SSH key di komputer Anda

Jalankan di komputer sendiri, bukan di VPS:

ssh-keygen -t ed25519 -C "laptop-kantor"

Tekan Enter untuk lokasi bawaan (~/.ssh/id_ed25519), lalu isi passphrase. Passphrase mengunci file kunci di laptop: kalau laptop hilang, kuncinya tidak langsung bisa dipakai orang lain.

Perintah ini menghasilkan dua file:

File Isi Boleh dibagikan?
id_ed25519 Kunci privat Tidak pernah. Tetap di komputer Anda
id_ed25519.pub Kunci publik Ya, ini yang dipasang di VPS

Kenapa ed25519 dan bukan RSA? Kuncinya pendek (satu baris sekitar 80 karakter), cepat, dan didukung semua versi OpenSSH yang masih dipakai. Kunci publik yang kami pasang di server uji tampak seperti ini:

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIPfr9NBdqwH1EPPOFTLLvVM… laptop-kantor

2. Memasang SSH key di VPS

Dari Linux atau macOS

ssh-copy-id -i ~/.ssh/id_ed25519.pub root@IP-VPS

Masukkan password root sekali lagi (terakhir kalinya). ssh-copy-id membuat folder ~/.ssh dengan izin yang benar dan menambahkan kunci ke ~/.ssh/authorized_keys. Di server uji hasilnya:

-rw------- 1 root root 98 authorized_keys

Dari Windows (PowerShell)

Windows tidak punya ssh-copy-id, jadi kirim isi kunci publik lewat ssh biasa:

type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh root@IP-VPS "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

Uji login dengan kunci

Buka terminal baru (jangan tutup yang lama):

ssh root@IP-VPS

Kalau tidak ditanya password (atau hanya ditanya passphrase kunci), SSH key VPS sudah bekerja. Baru lanjut ke langkah berikutnya setelah ini berhasil.

3. Mematikan login password: jebakan file cloud-init

Tutorial umumnya menyuruh mengubah PasswordAuthentication no di /etc/ssh/sshd_config. Kami coba persis begitu di server uji, lalu memeriksa setelan yang benar-benar dipakai SSH dengan sshd -T:

sed -i "s/^#\?PasswordAuthentication.*/PasswordAuthentication no/" /etc/ssh/sshd_config
sshd -t && systemctl reload ssh
sshd -T | grep -E "^passwordauthentication "
passwordauthentication yes

Password masih aktif. Penyebabnya ada di baris ke-12 sshd_config:

Include /etc/ssh/sshd_config.d/*.conf

Image cloud Ubuntu menyertakan file /etc/ssh/sshd_config.d/50-cloud-init.conf yang isinya:

PasswordAuthentication yes

SSH memakai nilai pertama yang ditemukan untuk setiap setelan. Karena file di sshd_config.d/ dibaca lewat Include di bagian atas, nilai yes dari cloud-init menang atas no yang Anda tulis di bawahnya.

Cara yang benar

Buat file sendiri dengan nama yang terurut lebih dulu dari 50-cloud-init.conf:

cat > /etc/ssh/sshd_config.d/00-keamanan.conf <<'EOF'
PasswordAuthentication no
PermitRootLogin prohibit-password
EOF
sshd -t && systemctl reload ssh
sshd -T | grep -E "^(passwordauthentication|permitrootlogin) "
permitrootlogin without-password
passwordauthentication no

without-password adalah nama lama untuk prohibit-password: root tetap boleh login, tetapi hanya dengan kunci. sshd -t memeriksa salah ketik sebelum SSH dimuat ulang, jadi jangan dilewati.

4. Pastikan password benar-benar ditolak

Dari komputer Anda, paksa SSH memakai password saja:

ssh -o PubkeyAuthentication=no -o PreferredAuthentications=password root@IP-VPS

Hasil di server uji:

[email protected]: Permission denied (publickey).

Server bahkan tidak menawarkan kolom password lagi. Bot penebak password berhenti di sini.

Kalau terkunci di luar

Misalnya laptop hilang atau file kunci terhapus. Di Super Cloud, buka layanan VPS di client area lalu pakai Konsol web: layar VPS terbuka di browser walau SSH tidak bisa. Dari sana, tambahkan kunci baru ke /root/.ssh/authorized_keys. Tombol lain seperti restart dan install ulang ada di panduan Menyalakan, restart, dan install ulang VPS.

Agar tidak sampai ke situ, simpan cadangan kunci privat di tempat aman (misalnya password manager), atau pasang dua kunci dari dua perangkat.

Langkah berikutnya

SSH sudah aman, tapi port lain belum. Kalau VPS akan menjalankan aplikasi di Docker, baca Install Docker di Ubuntu 24.04, lalu Docker bypass UFW: hasil uji kami menunjukkan port container tetap terbuka ke internet walau firewall UFW aktif.

VPS & Server

Ditulis oleh

Zulfianto

Digital Marketing Konsultan & Server Specialist.

Artikel lainnya