© 2026 Basis Pengetahuan Cloudkilat. Hak Cipta Dilindungi.

|
>
>
  1. Beranda
  2. Kilat VPS
  3. Akses Kilat VPS
  4. SSH
  5. Cara Menonaktifkan Login Root via SSH di Linux

Cara Menonaktifkan Login Root via SSH di Linux

Nonaktifkan login root via SSH di Linux secara aman. Panduan untuk Ubuntu, Debian, AlmaLinux, Rocky Linux, dan openSUSE, lengkap dengan validasi konfigurasi dan rollback cepat.

Waktu baca: 13 menit • Lihat progres baca di bar atas
Oleh Nizen Iskandar
Dipublikasikan 12 Mei 2026
SSHKeamanan VPSLinux TutorialVPS ManagementUbuntu ServerAlmaLinux

Cara Menonaktifkan Login Root via SSH di Linux -  Cover

Halo, Kawan Belajar! Kalau kamu baru saja menyalakan VPS baru, kemungkinan besar akses pertama yang kamu punya adalah login langsung sebagai root lewat SSH. Memang praktis, tapi kebiasaan ini justru membuka celah keamanan yang tidak perlu. Di panduan ini, kita akan menonaktifkan login root via SSH dan menggantinya dengan cara yang lebih aman: login sebagai user biasa, lalu eskalasi ke root hanya saat benar-benar dibutuhkan.

Panduan ini mencakup semua distro Linux umum yang tersedia di CloudKilat:

Distro Versi yang Dicakup
AlmaLinux 8, 9, 10
CentOS Stream 9, 10
Debian 12, 13
openSUSE Leap 15.6, 16.0
Rocky Linux 8, 9, 10
Ubuntu 22.04, 24.04, 26.04

Mengapa Login Root via SSH Sebaiknya Dinonaktifkan?

Login root langsung via SSH adalah target favorit serangan brute force. Alasannya sederhana: nama penggunanya sudah pasti root, jadi penyerang hanya perlu menebak satu hal lagi, yaitu kata sandi. Dengan menonaktifkan akses root langsung, kamu memaksa siapa pun (termasuk penyerang) untuk terlebih dahulu mengetahui nama user yang valid sebelum bisa melakukan apa-apa.

Selain itu, praktik ini mendorong kebiasaan baik: setiap perintah sensitif dilakukan secara sadar lewat sudo, bukan dijalankan begitu saja karena sudah telanjur jadi root.

ℹ️ Lapisan Keamanan, Bukan Perlindungan Penuh
Menonaktifkan login root memang membantu mengurangi risiko akses tidak sah ke server, tapi langkah ini bukan satu-satunya perlindungan yang perlu diterapkan. Selama login SSH masih menggunakan kata sandi, percobaan brute force ke user biasa tetap bisa terjadi. Dikarenakan itu, praktik yang lebih direkomendasikan adalah menggunakan autentikasi SSH key dan membatasi login berbasis password. Kita akan bahas singkat mengenai ini di bagian penutup.

Langkah 1: Buat User Non-Root dengan Akses Sudo

🚨 Jangan Lewati Langkah Ini!
Sebelum menonaktifkan login root, pastikan kamu sudah memiliki user non-root yang dapat menjalankan sudo. Kalau tidak, ada risiko kamu kehilangan akses ke server setelah konfigurasi SSH diterapkan.

Ganti namauser dengan nama user yang kamu inginkan. Jika ini pertama kalinya kamu membuat user non-root dengan akses sudo di Linux, panduan berikut cukup untuk memulai.

Debian dan Ubuntu

adduser namauser
usermod -aG sudo namauser

Perintah adduser di Debian/Ubuntu sudah interaktif: kamu akan diminta mengisi kata sandi dan beberapa informasi tambahan (boleh dikosongkan semua dengan menekan Enter).

AlmaLinux, CentOS Stream, dan Rocky Linux

useradd namauser
passwd namauser
usermod -aG wheel namauser

openSUSE Leap

useradd namauser
passwd namauser
usermod -aG wheel namauser
⚠️ Catatan untuk openSUSE
Pada beberapa image minimal openSUSE, group wheel mungkin belum secara otomatis memiliki hak sudo. Kalau setelah ditambahkan ke group wheel user masih tidak bisa menggunakan sudo, buka file /etc/sudoers dengan visudo dan pastikan baris %wheel ALL=(ALL:ALL) ALL tidak dikomentari (tidak ada tanda # di depannya).

Setelah user dibuat, buka sesi SSH baru (jangan tutup sesi root yang sedang aktif) dan coba login dengan user baru tersebut, lalu uji sudo:

sudo whoami

Kalau outputnya root, berarti user sudah dikonfigurasi dengan benar dan kamu siap lanjut ke langkah berikutnya.


Langkah 2: Backup File Konfigurasi SSH

Sebelum menyentuh file konfigurasi apapun, buat salinan cadangannya terlebih dahulu. Ini satu langkah kecil yang bisa menyelamatkan kamu dari kepanikan kalau ada typo di tengah proses pengeditan:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

Kalau nanti ada yang salah dan kamu perlu rollback, cukup jalankan:

sudo cp /etc/ssh/sshd_config.bak /etc/ssh/sshd_config

lalu restart service SSH, dan konfigurasi kembali ke kondisi semula.


Langkah 3: Edit Konfigurasi SSH

Buka file konfigurasi SSH daemon dengan editor teks:

sudo nano /etc/ssh/sshd_config
ℹ️ Jika nano Belum Tersedia
Beberapa instalasi minimal tidak menyertakan nano secara default. Kamu bisa menggunakan vi sebagai alternatif (tersedia di hampir semua distro), atau install nano terlebih dahulu: sudo apt install nano (Debian/Ubuntu) atau sudo dnf install nano (RHEL-based/openSUSE).

Di dalam file ini, cari baris yang berisi PermitRootLogin. Baris ini mungkin sudah ada (dengan atau tanpa tanda # di depannya), atau belum ada sama sekali.

Pastikan baris tersebut berbunyi persis seperti ini:

PermitRootLogin no
⚠️ Perhatikan Tanda Pagar (#)
Jika kamu menemukan baris #PermitRootLogin prohibit-password, itu artinya baris tersebut masih dikomentari (tidak aktif). Hapus tanda # di depannya dan ubah nilainya menjadi no.

Kalau baris PermitRootLogin tidak ditemukan sama sekali, tambahkan sendiri di bagian bawah file:

PermitRootLogin no

Simpan file dengan menekan Ctrl+O, lalu Enter, kemudian tutup dengan Ctrl+X.

🔧 Tentang Nilai "prohibit-password"
Nilai prohibit-password (atau without-password) hanya melarang login root dengan kata sandi, tapi masih mengizinkan login root dengan SSH key. Untuk keamanan yang lebih ketat, tetap gunakan nilai no agar akses root via SSH diblokir sepenuhnya, termasuk lewat SSH key.

Tentang Include dan File Konfigurasi Tambahan

Distro-distro modern biasanya sudah menyertakan baris berikut di bagian atas sshd_config:

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

Artinya, semua file .conf di dalam direktori /etc/ssh/sshd_config.d/ juga dibaca oleh SSH daemon, dan nilainya bisa menimpa pengaturan di file utama. Perhatikan ini kalau kamu menemukan pengaturan yang tidak berfungsi sesuai ekspektasi setelah konfigurasi diubah.

⚠️ Pertimbangkan Automation dan Script yang Ada
Sebelum melanjutkan, pastikan tidak ada automation, backup script, CI/CD pipeline, atau deployment tool yang masih menggunakan login root langsung via SSH ke server ini. Setelah perubahan diterapkan, proses-proses tersebut akan langsung gagal dan perlu diperbarui agar menggunakan user non-root.

Langkah 4: Validasi Konfigurasi

Sebelum merestart service, lakukan dua pengecekan berikut.

Pertama, periksa apakah ada kesalahan sintaks di file konfigurasi:

sudo sshd -t

Jika tidak ada output, sintaks valid. Pada beberapa environment (terutama sistem minimal), perintah sshd mungkin tidak ada di PATH sehingga perlu menggunakan path lengkapnya:

sudo /usr/sbin/sshd -t

Kedua, periksa konfigurasi efektif yang benar-benar akan dipakai oleh SSH daemon, termasuk nilai dari semua file yang di-include:

sudo sshd -T | grep permitrootlogin

Outputnya harus menunjukkan:

permitrootlogin no

Kalau outputnya masih menunjukkan nilai lain (misalnya yes atau prohibit-password), berarti ada file konfigurasi lain di sshd_config.d/ yang menimpa pengaturan kamu. Cek direktori tersebut:

grep -r "PermitRootLogin" /etc/ssh/

Temukan file yang bermasalah dan perbaiki nilainya di sana.


Langkah 5: Restart atau Reload Service SSH

Setelah konfigurasi tervalidasi, terapkan perubahan dengan me-restart atau me-reload service SSH.

Reload membaca ulang file konfigurasi tanpa benar-benar menghentikan daemon. Ini lebih aman karena koneksi yang sedang berjalan tidak terganggu sama sekali:

# Untuk AlmaLinux, CentOS Stream, Rocky Linux, openSUSE Leap
sudo systemctl reload sshd

# Untuk Debian dan Ubuntu
sudo systemctl reload ssh

Restart juga valid dan lebih umum digunakan. Perbedaannya hanya pada cara daemon ditangani secara internal; koneksi SSH yang sedang aktif tetap tidak terputus di kedua cara:

# Untuk AlmaLinux, CentOS Stream, Rocky Linux, openSUSE Leap
sudo systemctl restart sshd

# Untuk Debian dan Ubuntu
sudo systemctl restart ssh

Tabel referensi nama service per distro:

Distro Nama Service
AlmaLinux 8, 9, 10 sshd
CentOS Stream 9, 10 sshd
Rocky Linux 8, 9, 10 sshd
Debian 12, 13 ssh
Ubuntu 22.04, 24.04, 26.04 ssh
openSUSE Leap 15.6, 16.0 sshd

Langkah 6: Verifikasi

Pastikan service SSH berjalan normal setelah perubahan diterapkan:

sudo systemctl status sshd   # untuk RHEL-based & openSUSE
sudo systemctl status ssh    # untuk Debian & Ubuntu

Outputnya harus menunjukkan status active (running).

Verifikasi status service SSH di terminal

Gambar 1: Output `systemctl status` yang menunjukkan SSH berjalan normal.

Sekarang, uji coba dari terminal atau perangkat lain: coba login sebagai root via SSH ke server kamu.

ssh root@alamat-ip-server

Jika konfigurasi berhasil diterapkan, koneksi akan ditolak. Pesan error yang muncul bisa berbeda-beda tergantung distro dan metode autentikasi yang dikonfigurasi di server; berikut beberapa contoh yang umum dijumpai:

Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
root@alamat-ip-server: Permission denied (publickey,password).

Apapun bentuk pesannya, selama login root ditolak, konfigurasi sudah berjalan dengan benar.

💡 Gunakan sudo Secukupnya
Setelah login menggunakan user non-root, biasakan menjalankan perintah yang membutuhkan hak akses tinggi dengan awalan sudo secara langsung, misalnya sudo systemctl restart nginx. Hindari terlalu sering masuk ke sesi root penuh menggunakan sudo su - kecuali memang diperlukan. Dengan cara ini, aktivitas administratif tetap tercatat dengan jelas di log sistem dan risiko menjalankan perintah yang tidak disengaja sebagai root juga jadi lebih kecil.

Rollback Cepat

Kalau setelah perubahan diterapkan ternyata ada kendala dan kamu masih memiliki akses ke server (misalnya lewat Console/VNC di panel CloudKilat), konfigurasi SSH bisa dikembalikan seperti semula dengan cepat menggunakan salah satu cara berikut.

Opsi 1: Kembalikan file backup

sudo cp /etc/ssh/sshd_config.bak /etc/ssh/sshd_config
sudo systemctl restart sshd   # atau ssh, tergantung distro

Cara ini akan memulihkan konfigurasi SSH ke kondisi sebelum diedit.

Opsi 2: Ubah konfigurasi secara manual

Buka kembali file /etc/ssh/sshd_config, lalu cari baris berikut:

PermitRootLogin no

Ubah nilainya menjadi:

PermitRootLogin yes

Simpan perubahan, lalu restart service SSH. Setelah akses kembali normal, periksa ulang konfigurasi sebelumnya sebelum mencoba menerapkan perubahan lagi.


Troubleshooting

Login root masih tetap bisa dilakukan

Kalau login root masih berhasil meski PermitRootLogin no sudah diterapkan, biasanya ada file konfigurasi lain yang menimpa pengaturan tersebut. Pada distro modern, SSH sering membaca file tambahan dari direktori /etc/ssh/sshd_config.d/.

Untuk mengecek semua konfigurasi terkait PermitRootLogin, jalankan:

grep -r "PermitRootLogin" /etc/ssh/

Kalau ada file lain yang berisi PermitRootLogin yes, ubah nilainya menjadi no, lalu reload atau restart service SSH.

Setelah itu, pastikan konfigurasi efektif yang benar-benar digunakan oleh SSH daemon sudah sesuai:

sudo sshd -T | grep permitrootlogin

Output yang benar seharusnya:

permitrootlogin no

Service SSH gagal dijalankan setelah konfigurasi diubah

Masalah ini biasanya disebabkan oleh typo atau kesalahan sintaks di file konfigurasi SSH.

Periksa konfigurasi dengan:

sudo sshd -t

Pada beberapa sistem minimal, kamu mungkin perlu menggunakan path lengkap:

sudo /usr/sbin/sshd -t

Kalau ada kesalahan, SSH akan menampilkan baris konfigurasi yang bermasalah. Perbaiki file tersebut, lalu coba restart kembali service SSH.


User non-root bisa login, tapi sudo tidak berfungsi

Ada beberapa hal yang perlu diperiksa.

1. User belum masuk ke group yang benar

Cek group yang dimiliki user:

groups namauser

Pastikan output menyertakan:

  • sudo untuk Debian/Ubuntu
  • wheel untuk RHEL-based dan openSUSE

Kalau belum ada, tambahkan dengan:

usermod -aG sudo namauser    # Debian/Ubuntu
usermod -aG wheel namauser   # RHEL-based, openSUSE

2. Session login belum diperbarui

Perubahan group biasanya baru berlaku setelah login ulang. Logout dari SSH, lalu login kembali sebelum mencoba sudo lagi.

3. Package sudo belum tersedia

Beberapa image minimal Linux memang tidak menyertakan sudo secara default. Install terlebih dahulu dari sesi root yang masih aktif:

apt install sudo    # Debian/Ubuntu
dnf install sudo    # RHEL-based, openSUSE

Tidak bisa masuk ke server setelah konfigurasi diubah

Kalau semua sesi SSH sudah terlanjur ditutup sebelum user non-root berhasil diverifikasi, kamu masih bisa mengakses server melalui fitur Console/VNC di panel CloudKilat.

Dari sana, lakukan rollback konfigurasi menggunakan langkah-langkah pada bagian Rollback Cepat, lalu periksa kembali konfigurasi SSH sebelum mencoba menerapkannya ulang.


Kesimpulan

Menonaktifkan login root via SSH adalah salah satu langkah hardening dasar yang sangat direkomendasikan di setiap VPS baru. Prosesnya pun relatif sederhana: buat user non-root dengan akses sudo, ubah konfigurasi PermitRootLogin, lalu validasi dan terapkan perubahan pada service SSH.

Walau demikian, Kawan Belajar, langkah ini bukan perlindungan penuh terhadap semua ancaman SSH. Selama autentikasi kata sandi masih aktif, serangan brute force terhadap user biasa tetap mungkin terjadi. Maka, praktik terbaik berikutnya adalah menggunakan autentikasi SSH key dan menonaktifkan PasswordAuthentication agar akses SSH hanya bisa dilakukan menggunakan key yang valid.

Setelah itu, kamu juga bisa melanjutkan hardening server dengan mengonfigurasi firewall untuk membatasi akses ke port yang memang dibutuhkan saja. Dengan beberapa langkah sederhana ini, keamanan dasar VPS kamu sudah akan jauh lebih baik dibanding konfigurasi default awalnya. Selamat mencoba!

Butuh bantuan lebih lanjut?

Jangan ragu untuk menghubungi tim support kami jika Anda memiliki pertanyaan atau masalah terkait layanan CloudKilat.

Hubungi Kami