−25%

untuk Windows tahunan, hingga 31 Okt. Lihat paket

EQVPS
Mulai

Cara membuat pengguna sudo di VPS dan berhenti memakai root

Buat pengguna sudo non-root di Ubuntu atau Debian, berikan kunci SSH Anda, uji, lalu matikan login root — dengan urutan yang tidak membuat Anda terkunci di luar.

Hampir setiap VPS baru dimulai dengan cara yang sama: Anda login sebagai root, menginstal beberapa hal, dan sebulan kemudian Anda masih root. Itu berjalan lancar sampai sebuah skrip yang Anda tempel menghapus direktori yang salah. Menyiapkan pengguna biasa dengan sudo hanya butuh lima menit, dan urutannya lebih penting daripada perintahnya — salah urutan, Anda terkunci di luar.

Ini urutan yang aman untuk Ubuntu 22.04/24.04 dan Debian 12.

1. Buat penggunanya

Sebagai root:

adduser deploy
usermod -aG sudo deploy

adduser meminta kata sandi dan beberapa detail opsional (cukup tekan Enter). Pilih kata sandi sungguhan: Anda akan mengetiknya untuk sudo. Di image Debian minimal, jalankan apt install -y sudo lebih dulu kalau perintahnya belum ada.

2. Berikan kunci SSH Anda

Cara termudah adalah menyalin kunci resmi milik root sambil menjaga kepemilikannya tetap benar:

rsync --archive --chown=deploy:deploy /root/.ssh /home/deploy

Kalau Anda lebih suka manual:

mkdir -p /home/deploy/.ssh
cp /root/.ssh/authorized_keys /home/deploy/.ssh/
chown -R deploy:deploy /home/deploy/.ssh
chmod 700 /home/deploy/.ssh
chmod 600 /home/deploy/.ssh/authorized_keys

Izin yang salah adalah alasan klasik login dengan kunci gagal tanpa pesan. SSH mengabaikan authorized_keys yang bisa ditulisi pengguna lain.

3. Uji sebelum mengubah apa pun

Biarkan sesi root tetap terbuka. Di terminal baru:

ssh -p 22 deploy@203.0.113.10
sudo whoami

Gunakan IP dan port Anda sendiri — di paket NAT, itu port SSH pribadi dari dasbor. Kalau sudo whoami mencetak root, semuanya beres. Kalau login gagal, Anda masih punya jendela root untuk memperbaikinya.

4. Matikan login root

Sekarang tutup pintunya. Buat file drop-in kecil alih-alih mengedit konfigurasi utama:

cat > /etc/ssh/sshd_config.d/10-hardening.conf <<'EOF'
PermitRootLogin no
PasswordAuthentication no
EOF
sshd -t && systemctl reload ssh

sshd -t memeriksa sintaks lebih dulu. Konfigurasi rusak ditambah reload adalah cara orang berakhir butuh konsol. PasswordAuthentication no hanya masuk akal kalau login dengan kunci sudah berfungsi untuk pengguna baru — yang baru saja Anda uji.

Buka satu terminal lagi dan pastikan root ditolak sementara deploy tetap bisa masuk. Setelah itu tutup sesi root yang lama.

5. Opsional: sudo tanpa kata sandi untuk otomatisasi

Kalau skrip deploy butuh sudo tanpa pertanyaan, berikan tepat itu dan tidak lebih:

visudo -f /etc/sudoers.d/deploy
deploy ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart myapp

Jujur saja, NOPASSWD: ALL memang menggoda, tapi artinya kunci yang dicuri sama dengan root. Batasi pada perintah yang dijalankan otomatisasi.

Kalau ada yang salah

Konsol web di dasbor tidak bergantung pada SSH atau firewall. Masuk dari sana, perbaiki file di /etc/ssh/sshd_config.d/, reload, selesai. Alur pemulihan lengkapnya kami tulis di cara masuk kembali ke VPS yang terkunci.

Langkah berikutnya

Opsi akses untuk setiap paket ada di dokumentasi akses. Bahkan Nano seharga $3 layak punya pengguna non-root — ini peningkatan keamanan paling murah yang ada.

FAQ

Kenapa tidak terus pakai root saja?

Semua yang Anda jalankan sebagai root bisa merusak seluruh sistem, termasuk salah ketik. Bot juga selalu mencoba nama pengguna 'root' lebih dulu, jadi mematikan login root menghilangkan target yang paling sering ditebak. Pengguna bernama dengan sudo memberi Anda jeda sebelum setiap perintah berhak istimewa dan catatan tentang apa yang dijalankan.

Bagaimana kalau saya terkunci di luar?

Gunakan konsol web di dasbor Anda. Konsol itu tetap berfungsi saat SSH rusak atau firewall memblokir Anda, jadi Anda bisa masuk dan memperbaiki sshd_config. Karena itu juga Anda menguji pengguna baru sebelum menutup sesi root.

Perlukah sudo tanpa kata sandi?

Untuk akun pribadi, pertahankan permintaan kata sandi — itu garis pertahanan terakhir kalau kunci SSH Anda bocor. Sudo tanpa kata sandi masuk akal untuk pengguna deploy terpisah yang dipakai otomatisasi, dibatasi pada perintah yang benar-benar dibutuhkan.

Perintah sudo tidak ada di server Debian saya. Kenapa?

Image Debian minimal tidak selalu menyertakannya. Instal sebagai root dengan 'apt install -y sudo', lalu tambahkan pengguna Anda ke grup sudo.

Port SSH mana yang saya pakai?

Yang tertera di dasbor Anda. Paket IP dedicated memakai port 22 di IP Anda sendiri; paket NAT memakai port SSH pribadi Anda.

Komentar

Belum ada komentar. Jadilah yang pertama.

Tinggalkan komentar

Komentar dimoderasi sebelum muncul.