Cara Mengatasi SSH Connection Refused di VPS: Diagnosis dan Solusi

Yusuf
By: Yusuf October Mon 2026
Cara Mengatasi SSH Connection Refused di VPS

Server Solusi – Koneksi SSH yang tiba-tiba gagal bisa menghambat pekerjaan administrasi server, mulai dari memperbarui aplikasi hingga memeriksa layanan website. Salah satu pesan yang sering muncul adalah ssh: connect to host ... port 22: Connection refused.

Pesan tersebut menunjukkan bahwa koneksi TCP ke alamat dan port tujuan ditolak. Penyebabnya bisa berupa layanan SSH yang tidak berjalan, port yang salah, konfigurasi sshd yang berubah, atau aturan jaringan yang menolak koneksi.

Saya tidak memiliki log atau kronologi server tertentu untuk dijadikan dasar pengalaman perbaikan langsung. Karena itu, panduan ini menggunakan pendekatan troubleshooting praktis: setiap langkah dimulai dari pemeriksaan yang aman, kemudian dilanjutkan ke solusi sesuai hasil diagnosis.

Jawaban Singkat: Mengapa SSH Connection Refused Terjadi?

Cara mengatasi SSH connection refused di VPS adalah dengan memastikan alamat IP dan port yang digunakan benar, memeriksa status layanan SSH, memastikan sshd mendengarkan pada port yang sesuai, lalu mengecek firewall server dan firewall dari penyedia VPS.

Pada Ubuntu dan Debian, layanan tersebut biasanya dikelola melalui ssh.service, sedangkan pada beberapa distribusi Linux lain namanya sshd.service. Jika kamu tidak dapat masuk melalui SSH sama sekali, gunakan console atau fitur VNC/serial console dari panel penyedia VPS untuk menjalankan pemeriksaan dari dalam server.

Jangan langsung menonaktifkan firewall atau melakukan reboot. Pemeriksaan status service dan port terlebih dahulu akan membantu mempersempit sumber masalah tanpa mengubah konfigurasi yang sebenarnya masih benar.

1. Memahami Gejala dan Penyebab SSH Connection Refused

Pesan error yang tampil dapat memberikan petunjuk awal mengenai bagian yang perlu diperiksa.

Pesan atau kondisiKemungkinan penyebabPemeriksaan awal
Connection refusedTidak ada layanan yang menerima koneksi pada port tujuan, atau koneksi ditolak secara aktifStatus SSH dan port listening
Connection timed outPaket tidak mendapat respons tepat waktu, misalnya karena firewall, routing, atau server tidak terjangkauFirewall, IP, routing, dan status VPS
Permission deniedKoneksi sudah mencapai layanan SSH, tetapi autentikasi ditolakUsername, password, atau SSH key
No route to hostAda masalah jangkauan jaringan atau penolakan jaringan yang dilaporkan sebagai unreachableRouting, IP, dan firewall
Connection refused setelah mengganti portClient masih menggunakan port lama atau service belum mendengarkan pada port barusshd_config dan port yang aktif

Perbedaan tersebut penting. Jika kamu mendapatkan Permission denied, memperbaiki firewall biasanya bukan langkah yang tepat karena proses koneksi sudah mencapai tahap autentikasi.

Penyebab yang paling perlu diperiksa

Layanan SSH berhenti. Service mungkin tidak aktif setelah perubahan konfigurasi, pembaruan sistem, atau kegagalan saat startup.

Port SSH tidak sesuai. Port standar SSH adalah TCP 22, tetapi administrator dapat mengubahnya. Jika server mendengarkan pada port 2222, misalnya, koneksi ke port 22 tidak akan mencapai layanan tersebut.

Firewall menolak koneksi. Aturan ufw, nftables, firewall penyedia VPS, atau security group dapat membatasi akses ke port SSH.

Konfigurasi alamat listening keliru. Direktif ListenAddress dapat membatasi SSH hanya pada alamat tertentu, sehingga koneksi melalui alamat IP publik tidak diterima.

Paket SSH server tidak tersedia atau gagal berjalan. VPS yang baru dibuat atau instalasi Linux tertentu mungkin belum memiliki OpenSSH Server, meskipun klien SSH sudah tersedia.

2. Diagnosis Awal Sebelum Mengubah Konfigurasi

Sebelum memperbaiki server, kumpulkan informasi dasar. Dengan begitu, kamu tidak perlu mengubah banyak pengaturan sekaligus dan kesulitan mengetahui penyebab sebenarnya.

Langkah 1: Pastikan IP dan port tujuan benar

Dari komputer lokal, jalankan:

ssh -v root@203.0.113.10

Ganti root dengan username yang benar dan 203.0.113.10 dengan IP VPS kamu. Alamat pada contoh tersebut merupakan IP dokumentasi, bukan alamat server nyata.

Opsi -v menampilkan informasi proses koneksi SSH. Perhatikan bagian yang menyebut alamat tujuan dan port yang sedang dicoba.

Jika port SSH bukan 22, gunakan:

ssh -v -p 2222 root@203.0.113.10

Sesuaikan angka 2222 dengan port yang telah dikonfigurasi di server.

Hasil yang perlu diperhatikan: jika client mencoba port yang keliru, perbaiki parameter koneksi terlebih dahulu. Jika IP dan port sudah benar tetapi koneksi tetap ditolak, lanjutkan pemeriksaan dari console VPS.

Langkah 2: Periksa apakah VPS masih aktif

Buka panel penyedia VPS dan pastikan status mesin virtual menunjukkan kondisi berjalan. Jika tersedia, gunakan console untuk melihat apakah sistem berhasil melakukan boot dan apakah ada pesan kesalahan.

Status VPS yang aktif tidak otomatis membuktikan bahwa SSH berfungsi. Mesin virtual bisa berjalan normal sementara layanan SSH berhenti atau port aksesnya tidak terbuka.

Langkah 3: Periksa status service SSH

Masuk melalui console penyedia VPS, lalu jalankan perintah yang sesuai dengan distribusi Linux.

Untuk Ubuntu atau Debian:

sudo systemctl status ssh

Untuk distribusi yang menggunakan nama service sshd, misalnya beberapa instalasi Rocky Linux, AlmaLinux, atau Fedora:

sudo systemctl status sshd

Perhatikan status seperti active (running), inactive, atau failed.

  • Jika service berstatus active (running), periksa port listening dan firewall.

  • Jika berstatus inactive, periksa alasan service berhenti sebelum menjalankannya kembali.

  • Jika berstatus failed, baca log untuk mengetahui apakah ada kesalahan konfigurasi, masalah host key, atau kegagalan startup lainnya.

Langkah 4: Periksa port yang benar-benar digunakan

Jalankan:

sudo ss -lntp | grep -E 'ssh|:22|:2222'

Perintah ini menampilkan socket TCP yang sedang mendengarkan dan, jika tersedia, proses pemiliknya. Contoh port 2222 hanya untuk ilustrasi; sesuaikan dengan port yang kamu gunakan.

Jika tidak ada hasil, bukan berarti pasti tidak ada layanan SSH karena port bisa berbeda dari contoh. Periksa seluruh daftar port listening:

sudo ss -lntp

Cari port SSH yang dikonfigurasi. Jika service aktif tetapi tidak mendengarkan pada alamat dan port yang diharapkan, periksa konfigurasi sshd dan log startup.

3. Cara Memperbaiki SSH Connection Refused di VPS

Setelah mendapatkan hasil diagnosis, pilih tindakan yang sesuai. Hindari menjalankan semua perintah sekaligus tanpa mengetahui kondisi server.

Solusi 1: Jalankan kembali service SSH yang berhenti

Jika status service menunjukkan inactive dan tidak ada indikasi masalah konfigurasi, kamu dapat mencoba menjalankannya.

Ubuntu atau Debian:

sudo systemctl start ssh

Distribusi dengan nama service sshd:

sudo systemctl start sshd

Kemudian periksa kembali:

sudo systemctl status ssh

Ganti nama service pada perintah pemeriksaan jika distribusi kamu menggunakan sshd.

Mengapa langkah ini diperlukan? Server SSH harus berjalan agar dapat menerima koneksi masuk. Namun, jika service langsung berhenti lagi, jangan terus mengulang perintah start. Periksa log untuk menemukan penyebabnya.

Jika SSH memang harus tersedia setiap kali VPS melakukan boot, periksa juga apakah service telah diaktifkan:

sudo systemctl is-enabled ssh

Untuk mengaktifkan service pada saat boot Ubuntu/Debian, jika memang sesuai dengan kebutuhan server:

sudo systemctl enable ssh

Perintah enable mengatur aktivasi saat boot, sedangkan start menjalankan service saat ini. Keduanya memiliki fungsi berbeda.

Solusi 2: Periksa log jika service gagal berjalan

Untuk Ubuntu atau Debian, jalankan:

sudo journalctl -u ssh -n 100 --no-pager

Untuk service bernama sshd, gunakan:

sudo journalctl -u sshd -n 100 --no-pager

Log dapat menunjukkan apakah service gagal karena sintaks konfigurasi, host key yang tidak tersedia, atau masalah lain.

Pada beberapa distribusi, informasi tambahan juga tersedia melalui /var/log/auth.log atau /var/log/secure. Lokasi log bergantung pada distribusi dan konfigurasi sistem.

Jangan langsung menghapus file host key atau mengganti permission seluruh direktori SSH. Jika log menunjukkan masalah host key atau permission, periksa file yang disebutkan secara spesifik dan ikuti prosedur perbaikan yang sesuai.

Solusi 3: Validasi konfigurasi SSH sebelum restart

File konfigurasi utama OpenSSH Server biasanya berada di:

/etc/ssh/sshd_config

Periksa nilai Port dan ListenAddress, serta konfigurasi tambahan jika digunakan. Sebelum mengedit file, buat backup:

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

Setelah membuat perubahan, validasi sintaks:

sudo sshd -t

Jika perintah tidak menampilkan pesan kesalahan, pemeriksaan sintaks dan host key dasar berhasil. Namun, ini tidak menjamin koneksi eksternal akan berhasil.

Jika ada kesalahan, perbaiki bagian yang dilaporkan sebelum melakukan restart. Perlu diingat, beberapa distribusi menggunakan file tambahan di /etc/ssh/sshd_config.d/; perubahan pada file utama belum tentu menjadi nilai efektif jika ada konfigurasi lain yang memengaruhinya.

Setelah konfigurasi dinyatakan valid, terapkan perubahan dengan service yang sesuai:

sudo systemctl restart ssh

Peringatan: restart SSH saat konfigurasi masih salah dapat membuat akses baru gagal. Pertahankan sesi console penyedia VPS tetap terbuka dan uji koneksi baru sebelum menutup akses pemulihan tersebut.

Solusi 4: Buka port SSH pada firewall server

Jika service aktif dan sudah mendengarkan pada port yang benar, periksa firewall sistem operasi.

Pada Ubuntu atau Debian yang menggunakan UFW:

sudo ufw status numbered

Periksa apakah port SSH yang digunakan memiliki aturan yang mengizinkan koneksi dari alamat IP kamu.

Jika SSH menggunakan port standar 22, aturan yang umum digunakan adalah:

sudo ufw allow 22/tcp

Jika menggunakan port 2222:

sudo ufw allow 2222/tcp

Ganti angka port sesuai konfigurasi aktual. Sebelum menambahkan aturan, pastikan kamu memang menggunakan UFW dan memahami kebijakan firewall yang sudah ada.

Jika VPS hanya perlu diakses dari IP administrator tertentu, kamu dapat membatasi sumber koneksi:

sudo ufw allow from 198.51.100.25 to any port 22 proto tcp

Alamat 198.51.100.25 di atas merupakan alamat dokumentasi. Ganti dengan IP publik administrator yang benar dan port SSH yang digunakan.

Hal yang perlu diperhatikan: jangan mengaktifkan UFW secara sembarangan pada server yang sudah memiliki aturan firewall khusus. Pastikan akses SSH diizinkan terlebih dahulu agar kamu tidak kehilangan koneksi ketika firewall diaktifkan.

Jika menggunakan nftables, firewalld, atau sistem firewall lain, periksa aturan pada sistem tersebut. Jangan menerapkan aturan UFW secara otomatis jika UFW tidak digunakan.

Solusi 5: Periksa firewall dan security group dari penyedia VPS

Firewall tidak selalu berada di dalam sistem operasi. Sebagian penyedia VPS menyediakan firewall eksternal, network ACL, atau security group melalui dashboard.

Periksa pengaturan tersebut jika:

  • Service SSH berjalan dan mendengarkan pada port yang benar.

  • Firewall sistem operasi sudah mengizinkan koneksi.

  • Koneksi dari luar masih gagal.

  • Tidak ada masalah pada IP atau jaringan tujuan.

Pastikan aturan inbound mengizinkan protokol TCP pada port SSH yang digunakan, dengan sumber IP sesuai kebijakan keamanan server.

Jika akses SSH sebelumnya dibatasi ke IP tertentu, periksa apakah IP publik koneksi kamu berubah. Perubahan IP pada jaringan rumah atau kantor dapat menyebabkan aturan pembatasan sumber tidak lagi cocok.

Jangan membuka seluruh port VPS hanya untuk mencoba memperbaiki koneksi. Cukup sesuaikan aturan pada port SSH yang diperlukan.

Solusi 6: Pastikan SSH mendengarkan pada alamat yang tepat

Jika service aktif tetapi koneksi ke IP publik tetap ditolak, periksa konfigurasi ListenAddress.

Misalnya, konfigurasi yang membatasi service ke alamat loopback dapat membuat SSH hanya menerima koneksi lokal. Contoh berikut adalah konfigurasi yang mungkin bermasalah jika kamu mengharapkan akses langsung melalui IP publik:

ListenAddress 127.0.0.1

Jangan langsung mengubahnya tanpa memeriksa kebutuhan jaringan server. Pada VPS dengan beberapa antarmuka jaringan atau konfigurasi khusus, alamat listening memang dapat dibatasi dengan sengaja.

Periksa juga port efektif menggunakan:

sudo sshd -T | grep -E '^(port|listenaddress) '

Perintah ini menampilkan sebagian konfigurasi efektif sshd. Jika ada aturan Match atau konfigurasi tambahan, nilai tertentu dapat bergantung pada konteks koneksi. Karena itu, hasilnya perlu dibandingkan dengan konfigurasi aktual dan port yang terlihat dari ss.

Jika perlu mengubah konfigurasi, lakukan backup, edit bagian yang relevan, jalankan sudo sshd -t, lalu terapkan perubahan dengan hati-hati.

Solusi 7: Instal OpenSSH Server jika memang belum tersedia

Jika console menunjukkan bahwa program server SSH tidak tersedia, pastikan dahulu apakah paket OpenSSH Server memang belum terpasang.

Pada Ubuntu atau Debian:

dpkg -l openssh-server

Jika paket belum terpasang dan kamu memang membutuhkan akses SSH, instal dengan:

sudo apt updatesudo apt install openssh-server

Setelah instalasi, periksa service:

sudo systemctl status ssh

Langkah ini tidak diperlukan jika paket sudah tersedia dan service gagal berjalan karena masalah lain. Dalam kondisi tersebut, fokuslah pada log dan konfigurasi agar tidak menambah perubahan yang tidak relevan.

4. Cara Memastikan Koneksi SSH Sudah Berfungsi

Setelah melakukan perbaikan, jangan hanya mengandalkan status service. Pastikan koneksi dapat dibuat dari komputer yang benar-benar akan digunakan untuk administrasi server.

Uji port dari komputer lokal

Di Linux atau macOS, kamu dapat menggunakan:

nc -vz 203.0.113.10 22

Di Windows, PowerShell menyediakan perintah berikut:

Test-NetConnection 203.0.113.10 -Port 22

Ganti alamat dan port dengan data VPS kamu.

Hasil koneksi yang berhasil menunjukkan bahwa port tujuan dapat dijangkau melalui jalur pengujian tersebut. Namun, tes ini belum membuktikan bahwa autentikasi SSH berhasil.

Uji login dengan SSH

Jalankan:

ssh -v -p 22 username@203.0.113.10

Jika kamu dapat mencapai tahap autentikasi, koneksi TCP dan layanan SSH sudah merespons. Jika login masih ditolak, lanjutkan pemeriksaan username, SSH key, password, atau kebijakan autentikasi.

Jangan menganggap pesan Permission denied sebagai bukti bahwa seluruh masalah sudah selesai. Pesan itu menunjukkan bahwa client mencapai tahap autentikasi, tetapi akses belum berhasil diberikan.

Periksa status service dan log terbaru

Di server, jalankan:

sudo systemctl status ssh

Lalu periksa log terbaru:

sudo journalctl -u ssh --since "10 minutes ago" --no-pager

Sesuaikan nama service jika distribusi kamu menggunakan sshd.

Tidak adanya error pada log bukan bukti mutlak bahwa semua jalur jaringan berfungsi. Gabungkan hasil status service, port listening, dan pengujian koneksi eksternal untuk memperoleh gambaran yang lebih lengkap.

5. Pencegahan agar SSH Tidak Mudah Bermasalah Lagi

Beberapa kebiasaan administrasi dapat mengurangi risiko kehilangan akses ke VPS.

  • Backup konfigurasi sebelum mengubahnya. Simpan salinan sshd_config dan catat perubahan port atau aturan firewall.

  • Validasi konfigurasi sebelum restart. Gunakan sudo sshd -t sebelum menerapkan perubahan SSH.

  • Pertahankan jalur pemulihan. Pastikan kamu mengetahui cara membuka console VPS jika koneksi jaringan gagal.

  • Batasi akses berdasarkan kebutuhan. Jika memungkinkan, izinkan SSH hanya dari IP administrator atau jaringan yang dipercaya.

  • Pantau log service. Periksa journalctl ketika SSH gagal berjalan atau koneksi mulai bermasalah.

  • Dokumentasikan port dan aturan firewall. Catat port SSH aktual, alamat listening, dan lokasi aturan firewall agar diagnosis berikutnya lebih cepat.

  • Lakukan pembaruan terencana. Perbarui OpenSSH dan sistem operasi melalui prosedur pemeliharaan yang sesuai, terutama pada server produksi.

Jika kamu mengubah port SSH, uji koneksi melalui port baru sebelum menutup sesi administrasi yang masih aktif. Cara ini membantu mengurangi risiko terkunci di luar server akibat salah konfigurasi.

6. FAQ Seputar SSH Connection Refused di VPS

1. Apa penyebab utama SSH connection refused di VPS?

Penyebab yang umum adalah layanan SSH tidak berjalan, port yang digunakan salah, atau koneksi ditolak oleh aturan jaringan. Periksa status service dan port listening sebelum mengubah firewall.

2. Bagaimana cara mengatasi SSH connection refused di Ubuntu?

Gunakan sudo systemctl status ssh untuk memeriksa layanan. Jika service berhenti, periksa log melalui sudo journalctl -u ssh -n 100 --no-pager. Setelah mengetahui penyebabnya, perbaiki konfigurasi atau jalankan kembali service jika memang aman.

3. Apakah SSH connection refused berarti VPS sedang down?

Tidak selalu. VPS bisa tetap aktif meskipun layanan SSH berhenti atau port SSH tidak menerima koneksi. Periksa status VPS melalui panel penyedia dan gunakan console untuk memeriksa service secara langsung.

4. Mengapa port 22 tetap tidak bisa diakses meskipun SSH aktif?

Service mungkin mendengarkan pada port atau alamat yang berbeda. Firewall sistem operasi, firewall penyedia VPS, atau pembatasan sumber IP juga dapat menghalangi koneksi. Periksa port aktual menggunakan ss -lntp dan tinjau aturan jaringan yang berlaku.

5. Bagaimana jika saya tidak bisa masuk ke VPS melalui SSH maupun terminal?

Gunakan fitur web console, VNC, atau serial console yang disediakan oleh penyedia VPS jika tersedia. Dari sana, periksa status service, konfigurasi SSH, dan firewall. Jika console juga tidak dapat diakses, hubungi dukungan penyedia VPS untuk memeriksa kondisi mesin virtual dan akses pemulihan.

Penutup

Cara mengatasi SSH connection refused di VPS sebaiknya dimulai dengan memeriksa alamat IP dan port tujuan, status service SSH, serta port yang benar-benar mendengarkan. Setelah itu, periksa konfigurasi sshd, firewall sistem operasi, dan aturan jaringan dari penyedia VPS sesuai temuan diagnosis.

Hindari langsung menonaktifkan firewall atau melakukan reboot tanpa mengetahui penyebab masalah. Jika SSH tetap tidak dapat diakses, gunakan console penyedia VPS untuk mengumpulkan log dan memeriksa konfigurasi dari dalam server.

Dengan diagnosis bertahap, kamu dapat mempersempit sumber gangguan dan menerapkan perubahan yang relevan tanpa mengambil risiko yang tidak perlu pada layanan produksi.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *