Mengganti port SSH bawaan ke port custom dapat membantu mengurangi percobaan login otomatis dari bot yang menargetkan port standar. Langkah ini juga membuat akses administrasi VPS tidak langsung tersedia pada port yang paling umum digunakan.
Namun, port custom tetap bisa ditemukan melalui pemindaian. Karena itu, gunakan juga SSH key, pembatasan akses firewall, dan pembaruan sistem untuk meningkatkan keamanan VPS.
Panduan berikut menggunakan VPS Ubuntu dengan systemd.
Berapa Nomor Port SSH yang Bisa Digunakan?
Nomor port TCP berada dalam rentang 0–65535, tetapi port 0 tidak digunakan sebagai port tujuan login SSH. Untuk port SSH custom, pilih port yang belum digunakan layanan lain.
Pembagian rentangnya:
| Rentang port | Keterangan |
|---|---|
| 1–1023 | Port sistem dan layanan umum, seperti SSH, HTTP, dan HTTPS |
| 1024–49151 | Port terdaftar; sebagian digunakan aplikasi tertentu |
| 49152–65535 | Port dinamis atau privat, juga sering digunakan sebagai port sementara untuk koneksi keluar |
Nomor port maksimal adalah 65535, bukan batas jumlah koneksi SSH. Satu port SSH dapat melayani banyak koneksi.
Contoh nomor port custom adalah 48327, 37189, atau 42673. Angka tersebut hanya contoh, bukan port yang dijamin kosong atau lebih aman.
Pada panduan ini, kita menggunakan 48327. Anda boleh menggantinya dengan nomor lain, tetapi sesuaikan seluruh perintah secara konsisten.
1. Persiapkan Akses dan Cadangan Konfigurasi
Jangan tutup sesi SSH yang sedang digunakan sampai login melalui port baru berhasil. Pastikan juga tersedia akses console melalui panel penyedia VPS untuk pemulihan jika diperlukan.
Seluruh perintah konfigurasi berikut dijalankan sebagai root. Jika menggunakan akun sudo, jalankan:
sudo -iCadangkan konfigurasi SSH:
cp -a /etc/ssh "/root/ssh-backup-$(date +%Y%m%d-%H%M%S)"Periksa apakah port contoh sudah digunakan:
ss -lntp 'sport = :48327'Jika ada baris LISTEN, periksa layanan yang menggunakannya dan pilih port lain. Jika tidak ada listener, lanjutkan.
2. Izinkan Port Custom pada Firewall
Jika menggunakan UFW, periksa statusnya:
ufw statusJika aktif, buka port custom menggunakan protokol TCP:
ufw allow 48327/tcpJika UFW tidak aktif, tidak perlu mengaktifkannya hanya untuk mengganti port SSH.
Periksa juga firewall pada panel VPS atau security group. Pastikan TCP 48327 diizinkan masuk, idealnya hanya dari IP administrator.
Jangan menutup akses port lama sebelum port baru berhasil diuji.
3. Periksa Apakah VPS Menggunakan SSH Socket
Jalankan:
systemctl is-active ssh.socketPilih metode sesuai hasilnya:
active: gunakan metode A.inactiveatau unit tidak ditemukan: gunakan metode B jika SSH berjalan melaluissh.service.
Metode A — VPS Menggunakan ssh.socket
Pada sistem ini, port SSH dikelola melalui socket systemd. Mengubah sshd_config saja belum tentu langsung mengubah listener aktif.
Buat direktori konfigurasi dan cadangannya:
mkdir -p /etc/systemd/system/ssh.socket.d
cp -a /etc/systemd/system/ssh.socket.d \
"/root/ssh-socket-backup-$(date +%Y%m%d-%H%M%S)"Aktifkan port custom sambil mempertahankan port bawaan selama pengujian:
cat > /etc/systemd/system/ssh.socket.d/zz-port.conf <<'EOF'
[Socket]
ListenStream=
ListenStream=0.0.0.0:22
ListenStream=0.0.0.0:48327
EOFKonfigurasi ini menggunakan IPv4. Baris ListenStream= yang kosong menghapus daftar listener sebelumnya, termasuk listener IPv6. Jika akses administrasi Anda menggunakan IPv6, sesuaikan alamat listener sebelum menerapkannya.
Terapkan konfigurasi:
if sshd -t; then
systemctl daemon-reload
systemctl restart ssh.socket && systemctl restart ssh.service
fiJika muncul error, periksa penyebabnya sebelum melanjutkan.
Metode B — VPS Menggunakan ssh.service Biasa
Buka konfigurasi SSH:
nano /etc/ssh/sshd_configTambahkan atau sesuaikan baris berikut pada bagian global, sebelum blok Match jika ada:
Port 22
Port 48327Dua port diaktifkan sementara agar akses lama masih tersedia selama pengujian. Pastikan baris tersebut tidak diawali tanda #.
Simpan dengan Ctrl+O, tekan Enter, lalu keluar dengan Ctrl+X.
Periksa pengaturan tambahan:
grep -RnsE '^[[:space:]]*(Port|ListenAddress|Include)[[:space:]]' \
/etc/ssh/sshd_config /etc/ssh/sshd_config.d/Jika ada ListenAddress yang secara eksplisit membatasi SSH ke port lama, sesuaikan juga pengaturan tersebut.
Validasi konfigurasi dan restart SSH:
sshd -t && systemctl restart ssh.service4. Coba Login Menggunakan Port Custom
Periksa listener pada VPS:
ss -lntp '( sport = :22 or sport = :48327 )'Pastikan port 48327 muncul dengan status LISTEN.
Selanjutnya, buka terminal baru di komputer Anda, lalu jalankan:
ssh -p 48327 USER_VPS@IP_SERVERGanti USER_VPS dengan username SSH dan IP_SERVER dengan IP VPS.
Jika menggunakan PuTTY:
- Host Name: IP VPS.
- Port:
48327. - Connection type: SSH.
Jangan lanjut ke penutupan port lama sampai Anda berhasil masuk melalui koneksi baru ini.
5. Nonaktifkan Port SSH Bawaan
Setelah login melalui port custom berhasil, jalankan tahap berikut dari sesi baru tersebut.
Jika Menggunakan Metode A
Ubah konfigurasi socket agar hanya menggunakan port custom:
cat > /etc/systemd/system/ssh.socket.d/zz-port.conf <<'EOF'
[Socket]
ListenStream=
ListenStream=0.0.0.0:48327
EOF
if sshd -t; then
systemctl daemon-reload
systemctl restart ssh.socket && systemctl restart ssh.service
fiSelama konfigurasi ini digunakan, perubahan port berikutnya dilakukan pada file:
/etc/systemd/system/ssh.socket.d/zz-port.confJika Menggunakan Metode B
Buka kembali konfigurasi:
nano /etc/ssh/sshd_configHapus baris aktif Port 22 dan pertahankan:
Port 48327Pastikan file konfigurasi tambahan yang dimuat melalui Include tidak masih mengaktifkan port lama.
Terapkan perubahan:
sshd -t && systemctl restart ssh.service6. Pastikan Hanya Port Custom yang Aktif
Jalankan:
ss -lntp '( sport = :22 or sport = :48327 )'Hasil yang diharapkan adalah listener port 48327, tanpa listener port 22, baik pada IPv4 maupun IPv6.
Coba login sekali lagi dari terminal baru:
ssh -p 48327 USER_VPS@IP_SERVERSetelah berhasil, hapus aturan izin port lama pada firewall VPS dan panel penyedia jika sudah tidak diperlukan.
Perbarui juga pengaturan port pada aplikasi SFTP, skrip deployment, backup, dan monitoring.
Mengatasi Port SSH Custom yang Tidak Bisa Diakses
| Pesan atau kondisi | Hal yang perlu diperiksa |
|---|---|
| Connection timed out | IP tujuan, firewall VPS, security group, dan koneksi jaringan |
| Connection refused | Listener SSH pada port custom atau firewall yang menolak koneksi |
| Permission denied | Username, password, SSH key, dan izin login |
| Port lama masih aktif | Konfigurasi tambahan serta restart service atau socket |
Untuk melihat status dan log:
systemctl status ssh.service ssh.socket --no-pager -l
journalctl -u ssh.service -u ssh.socket -n 50 --no-pagerJika kehilangan akses SSH, gunakan console dari panel VPS untuk mengembalikan konfigurasi sebelumnya dan membuka kembali akses firewall yang diperlukan.
Tips agar Akses SSH Lebih Aman
Port custom membantu mengurangi gangguan bot pada port bawaan, tetapi tidak menggantikan pengamanan utama. Gunakan SSH key, batasi akses melalui IP administrator atau VPN, serta perbarui sistem secara berkala.
Jika ingin menonaktifkan login menggunakan password, pastikan login menggunakan SSH key sudah berhasil terlebih dahulu.



