Lewati ke isi

Server & Infrastruktur

Cara Mengganti Port SSH dan Hostname di Ubuntu 24.04

Langkah aman mengganti port SSH di Ubuntu 24.04 yang memakai ssh.socket, membuka port baru di UFW, lalu mengganti hostname dengan hostnamectl.

Terbit 6 menit baca

Jawaban singkat

Di Ubuntu 24.04, ubah Port di /etc/ssh/sshd_config, buka port baru di firewall, lalu jalankan systemctl daemon-reload dan systemctl restart ssh.socket karena SSH memakai socket activation. Hostname diganti dengan hostnamectl set-hostname dan disesuaikan di /etc/hosts.

Daftar isi
  1. Sebelum mulai, apa yang perlu disiapkan?
  2. Bagian 1: Mengganti port SSH
  3. Bagian 2: Mengganti hostname
  4. Ringkasan perintah
  5. Pertanyaan yang sering diajukan
  6. Checklist sebelum selesai

Sudah mengubah Port di sshd_config, me-restart SSH, tapi server tetap mendengarkan di port 22? Di Ubuntu 24.04, itu perilaku yang wajar. SSH di versi ini dijalankan lewat socket activation systemd (ssh.socket), sehingga port yang didengarkan diatur oleh unit socket, bukan langsung oleh proses sshd.

Jawabannya: setelah mengubah port di konfigurasi, jalankan systemctl daemon-reload lalu systemctl restart ssh.socket. Panduan di bawah menyusun urutannya agar kamu tidak terkunci dari server, lalu dilanjutkan dengan mengganti hostname.

Sebelum mulai, apa yang perlu disiapkan?

  • Akses SSH dengan user yang punya hak sudo. Bila masih login sebagai root, buat dulu user biasa seperti dijelaskan di cara membuat user baru dan memberi akses sudo.
  • Akses konsol darurat dari panel penyedia VPS (VNC atau console web). Ini penyelamat bila konfigurasi salah.
  • Satu nomor port pengganti. Pilih angka di atas 1024 yang tidak dipakai layanan lain, misalnya 2222 atau 49022.

Mengganti port SSH bukan pengaman utama. Ia mengurangi kebisingan bot yang memindai port 22, tapi perlindungan sebenarnya tetap SSH key, menonaktifkan login password, dan pembatasan percobaan login. Bacaan lanjutannya ada di langkah awal mengamankan VPS baru.

Bagian 1: Mengganti port SSH

  1. Jangan tutup sesi SSH yang sedang aktif. Semua langkah dikerjakan di sesi ini, dan pengujian dilakukan dari jendela terminal kedua. Bila ada yang salah, sesi pertama masih bisa dipakai untuk memperbaiki.
  2. Buka port baru di firewall lebih dulu. Bila UFW aktif, jalankan sudo ufw allow 2222/tcp, lalu cek dengan sudo ufw status. Bila penyedia VPS punya firewall di panel (security group), buka juga port 2222 di sana.
  3. Ubah konfigurasi SSH. Buka sudo nano /etc/ssh/sshd_config, cari baris #Port 22, lalu ganti menjadi Port 2222 (tanpa tanda pagar). Simpan file.
  4. Pastikan tidak ada setelan Port lain. Ubuntu memuat file tambahan dari /etc/ssh/sshd_config.d/. Cek dengan grep -ri '^port' /etc/ssh/sshd_config /etc/ssh/sshd_config.d/. Setiap baris Port menambah satu port yang didengarkan, jadi hapus yang tidak kamu inginkan.
  5. Uji sintaks konfigurasi. Jalankan sudo sshd -t. Bila tidak ada keluaran, konfigurasi valid.
  6. Terapkan ke socket. Jalankan sudo systemctl daemon-reload lalu sudo systemctl restart ssh.socket. Langkah daemon-reload wajib karena generator systemd membaca port dari sshd_config dan membuat ulang pengaturan socket.
  7. Cek port yang didengarkan. Jalankan sudo ss -tlnp | grep -E ':22|:2222'. Seharusnya hanya port 2222 yang muncul.
  8. Uji dari terminal kedua. Dari komputermu, jalankan ssh -p 2222 user@ip-server. Lanjutkan hanya bila login berhasil.
  9. Tutup port lama. Setelah login lewat port baru berhasil, hapus aturan lama, misalnya sudo ufw delete allow OpenSSH atau sudo ufw delete allow 22/tcp, sesuai aturan yang tercantum di sudo ufw status numbered.

Kalau perintah systemctl is-active ssh.socket menjawab inactive, berarti servermu menjalankan SSH tanpa socket activation (sebagian image VPS mengatur begitu). Dalam kondisi itu, cukup jalankan sudo systemctl restart ssh setelah langkah 5.

Setelah port diganti, simpan di ~/.ssh/config komputermu agar tidak perlu mengetik -p setiap kali:

Host vps-kantor
    HostName 203.0.113.10
    User deploy
    Port 2222

Sekarang cukup ketik ssh vps-kantor. Perintah scp dan rsync juga ikut memakai setelan ini bila kamu menulis vps-kantor sebagai nama host. Contohnya ada di panduan memindahkan file dengan SCP dan rsync.

Bila kamu memakai Fail2ban, periksa juga pengaturan port di jail sshd agar memblokir port yang benar.

Bagian 2: Mengganti hostname

Hostname adalah nama server yang tampil di prompt terminal, log, dan email sistem. Nama acak bawaan image VPS sebaiknya diganti dengan nama yang menjelaskan fungsinya, misalnya web-01 atau db-jkt.

  1. Lihat hostname sekarang dengan hostnamectl.
  2. Ganti hostname dengan sudo hostnamectl set-hostname web-01. Gunakan huruf kecil, angka, dan tanda hubung saja.
  3. Sesuaikan /etc/hosts. Buka sudo nano /etc/hosts dan ubah baris 127.0.1.1 agar memakai nama baru, misalnya 127.0.1.1 web-01. Bila punya nama domain lengkap, tulis 127.0.1.1 web-01.contoh.co.id web-01.
  4. Cek cloud-init. Banyak VPS memakai cloud-init yang bisa mengembalikan hostname lama saat reboot. Buka /etc/cloud/cloud.cfg dan pastikan ada baris preserve_hostname: true. Bila file itu tidak ada, servermu tidak memakai cloud-init dan langkah ini bisa dilewati.
  5. Muat ulang prompt. Logout lalu login lagi, atau jalankan exec bash, agar nama baru tampil di prompt.

Bila setelah mengganti hostname muncul pesan sudo: unable to resolve host, artinya nama baru belum tercantum di /etc/hosts. Ulangi langkah 3.

Ringkasan perintah

TujuanPerintah
Buka port baru di UFWsudo ufw allow 2222/tcp
Uji konfigurasi SSHsudo sshd -t
Terapkan port baru (socket)sudo systemctl daemon-reload lalu sudo systemctl restart ssh.socket
Cek port yang didengarkansudo ss -tlnp
Login ke port barussh -p 2222 user@ip-server
Ganti hostnamesudo hostnamectl set-hostname web-01
Cek hostnamehostnamectl

Pertanyaan yang sering diajukan

Kenapa sshd masih mendengarkan di port 22 padahal sudah diganti?

Di Ubuntu 24.04, port diatur oleh ssh.socket. Jalankan systemctl daemon-reload lalu systemctl restart ssh.socket. Me-restart ssh.service saja tidak cukup.

Port berapa yang sebaiknya dipakai untuk SSH?

Tidak ada angka wajib. Pilih port di atas 1024 yang tidak dipakai layanan lain di servermu, lalu catat di dokumentasi tim.

Apakah mengganti port SSH membuat server aman?

Hanya mengurangi pemindaian otomatis. Keamanan utama tetap SSH key, menonaktifkan login password dan root, serta pembatasan percobaan login.

Apakah mengganti hostname mengganggu website yang berjalan?

Umumnya tidak, karena website diakses lewat domain dan IP. Yang perlu dicek adalah aplikasi yang memakai hostname di konfigurasinya, misalnya server email.

Bagaimana kalau ingin menjalankan SSH tanpa socket activation?

Bisa, dengan sudo systemctl disable --now ssh.socket lalu sudo systemctl enable --now ssh.service. Setelah itu sshd membaca port langsung dari sshd_config. Untuk sekadar mengganti port, langkah ini tidak perlu.

Checklist sebelum selesai

Pastikan semua poin ini terpenuhi sebelum menutup sesi lama:

  • Port baru sudah dibuka di UFW dan firewall panel penyedia.
  • sudo sshd -t bersih dan ss -tlnp hanya menampilkan port baru.
  • Login dari terminal kedua berhasil sebelum sesi lama ditutup.
  • Aturan port 22 sudah dihapus dari firewall.
  • Hostname baru tercantum di /etc/hosts dan bertahan setelah reboot.

Sumber & referensi

Baca juga