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.
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
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
- 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.
- Buka port baru di firewall lebih dulu. Bila UFW aktif, jalankan
sudo ufw allow 2222/tcp, lalu cek dengansudo ufw status. Bila penyedia VPS punya firewall di panel (security group), buka juga port 2222 di sana. - Ubah konfigurasi SSH. Buka
sudo nano /etc/ssh/sshd_config, cari baris#Port 22, lalu ganti menjadiPort 2222(tanpa tanda pagar). Simpan file. - Pastikan tidak ada setelan Port lain. Ubuntu memuat file tambahan dari
/etc/ssh/sshd_config.d/. Cek dengangrep -ri '^port' /etc/ssh/sshd_config /etc/ssh/sshd_config.d/. Setiap barisPortmenambah satu port yang didengarkan, jadi hapus yang tidak kamu inginkan. - Uji sintaks konfigurasi. Jalankan
sudo sshd -t. Bila tidak ada keluaran, konfigurasi valid. - Terapkan ke socket. Jalankan
sudo systemctl daemon-reloadlalusudo systemctl restart ssh.socket. Langkahdaemon-reloadwajib karena generator systemd membaca port darisshd_configdan membuat ulang pengaturan socket. - Cek port yang didengarkan. Jalankan
sudo ss -tlnp | grep -E ':22|:2222'. Seharusnya hanya port 2222 yang muncul. - Uji dari terminal kedua. Dari komputermu, jalankan
ssh -p 2222 user@ip-server. Lanjutkan hanya bila login berhasil. - Tutup port lama. Setelah login lewat port baru berhasil, hapus aturan lama, misalnya
sudo ufw delete allow OpenSSHatausudo ufw delete allow 22/tcp, sesuai aturan yang tercantum disudo 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.
- Lihat hostname sekarang dengan
hostnamectl. - Ganti hostname dengan
sudo hostnamectl set-hostname web-01. Gunakan huruf kecil, angka, dan tanda hubung saja. - Sesuaikan
/etc/hosts. Bukasudo nano /etc/hostsdan ubah baris127.0.1.1agar memakai nama baru, misalnya127.0.1.1 web-01. Bila punya nama domain lengkap, tulis127.0.1.1 web-01.contoh.co.id web-01. - Cek cloud-init. Banyak VPS memakai cloud-init yang bisa mengembalikan hostname lama saat reboot. Buka
/etc/cloud/cloud.cfgdan pastikan ada barispreserve_hostname: true. Bila file itu tidak ada, servermu tidak memakai cloud-init dan langkah ini bisa dilewati. - 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
| Tujuan | Perintah |
|---|---|
| Buka port baru di UFW | sudo ufw allow 2222/tcp |
| Uji konfigurasi SSH | sudo sshd -t |
| Terapkan port baru (socket) | sudo systemctl daemon-reload lalu sudo systemctl restart ssh.socket |
| Cek port yang didengarkan | sudo ss -tlnp |
| Login ke port baru | ssh -p 2222 user@ip-server |
| Ganti hostname | sudo hostnamectl set-hostname web-01 |
| Cek hostname | hostnamectl |
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 -tbersih danss -tlnphanya menampilkan port baru.- Login dari terminal kedua berhasil sebelum sesi lama ditutup.
- Aturan port 22 sudah dihapus dari firewall.
- Hostname baru tercantum di
/etc/hostsdan bertahan setelah reboot.


