Pendahuluan
Apakah Anda mengalami masalah dalam mengakses server jarak jauh melalui SSH? Jika SSH merespons dengan pesan "Sambungan ditolak", Anda mungkin perlu mengubah permintaan atau memeriksa penyiapan.
Dalam tutorial ini, Anda akan menemukan alasan paling umum untuk kesalahan koneksi SSH yang ditolak.
Mengapa Koneksi Ditolak Saat Saya SSH?
Ada banyak alasan mengapa Anda mungkin mendapatkan "Sambungan ditolak " kesalahan saat mencoba SSH ke server Anda. Untuk mengatasi masalah ini, Anda harus terlebih dahulu mengidentifikasi mengapa sistem menolak koneksi Anda melalui SSH.
Di bawah ini Anda akan menemukan beberapa alasan paling umum yang dapat menyebabkan penolakan koneksi SSH.
Klien SSH Tidak Terpasang
Sebelum memecahkan masalah lain, langkah pertama adalah memeriksa apakah Anda telah menginstal SSH dengan benar. Mesin tempat Anda mengakses server harus sudah menyiapkan klien SSH. Tanpa pengaturan klien yang benar, Anda tidak dapat melakukan remote ke server.
Untuk memeriksa apakah Anda memiliki klien SSH di sistem Anda, ketik perintah berikut di jendela terminal:
ssh
Jika terminal menyediakan daftar ssh
opsi perintah, klien SSH diinstal pada sistem. Namun, jika merespons dengan perintah tidak ditemukan , Anda perlu menginstal Klien OpenSSH.
Solusi:Instal Klien SSH
Untuk menginstal SSH Client di mesin Anda, buka terminal, dan jalankan salah satu perintah yang tercantum di bawah ini.
Untuk sistem Ubuntu/Debian:
sudo apt install openssh-client
Untuk sistem CentOS/RHEL:
sudo yum install openssh-client
Daemon SSH Tidak Terinstal di Server
Sama seperti Anda memerlukan versi klien SSH untuk mengakses server jarak jauh, Anda memerlukan versi server untuk mendengarkan dan menerima koneksi. Oleh karena itu, server dapat menolak koneksi masuk jika server SSH tidak ada atau pengaturan tidak valid.
Untuk memeriksa apakah SSH tersedia di server jauh, jalankan perintah:
ssh localhost
Jika output merespons dengan "Koneksi ditolak ", lanjutkan untuk menginstal SSH di server.
Solusi:Instal SSH di Server Jarak Jauh
Untuk memperbaiki masalah server SSH yang hilang, lihat cara menginstal server OpenSSH.
Kredensial Salah
Kesalahan ketik atau kredensial yang salah adalah alasan umum untuk koneksi SSH yang ditolak. Pastikan Anda tidak salah mengetik nama pengguna atau sandi .
Kemudian, periksa apakah Anda menggunakan alamat IP yang benar dari server.
Terakhir, pastikan Anda memiliki port SSH yang benar membuka. Anda dapat memeriksa dengan menjalankan:
grep Port /etc/ssh/sshd_config
Output menampilkan nomor port, seperti pada gambar di bawah ini.
Layanan SSH Tidak Aktif
Layanan SSH harus diaktifkan dan berjalan di latar belakang. Jika layanan sedang down, daemon SSH tidak dapat menerima koneksi.
Untuk memeriksa status layanan, masukkan perintah ini:
sudo service ssh status
Output harus merespon bahwa layanan aktif. Jika terminal merespons bahwa layanan sedang tidak aktif, aktifkan untuk menyelesaikan masalah.
Solusi:Aktifkan Layanan SSH
Jika sistem menunjukkan daemon SSH tidak aktif, Anda dapat memulai layanan dengan menjalankan:
systemctl start sshd
Untuk mengaktifkan layanan agar berjalan saat boot, jalankan perintah:
sudo systemctl enable sshd
Firewall Mencegah Koneksi SSH
SSH dapat menolak koneksi karena batasan firewall. Firewall melindungi server dari koneksi yang berpotensi berbahaya. Namun, jika Anda telah menyiapkan SSH di sistem, Anda harus mengonfigurasi firewall untuk mengizinkan koneksi SSH.
Pastikan firewall tidak memblokir koneksi SSH karena ini dapat menyebabkan "koneksi ditolak " kesalahan.
Solusi:Izinkan Koneksi SSH Melalui Firewall
Untuk memperbaiki masalah yang kami sebutkan di atas, Anda dapat menggunakan ufw (Uncomplicated Firewall), alat antarmuka baris perintah untuk mengelola konfigurasi firewall.
Ketik perintah berikut di jendela terminal untuk mengizinkan koneksi SSH:
sudo ufw allow ssh
Port SSH Ditutup
Saat Anda mencoba koneksi ke server jauh, SSH mengirimkan permintaan ke port tertentu. Untuk menerima permintaan ini, server harus membuka port SSH.
Jika port ditutup, server menolak koneksi.
Secara default, SSH menggunakan port 22. Jika Anda belum membuat perubahan konfigurasi apa pun pada port tersebut, Anda dapat memeriksa apakah server mendengarkan permintaan yang masuk.
Untuk membuat daftar semua port yang mendengarkan, jalankan:
sudo lsof -i -n -P | grep LISTEN
Temukan port 22 di output dan periksa apakah STATE disetel ke DENGARKAN .
Atau, Anda dapat memeriksa apakah port tertentu terbuka, dalam hal ini, port 22:
sudo lsof -i:22
Solusi:Buka Port SSH
Untuk mengaktifkan port 22 untuk MENDENGARKAN permintaan, gunakan iptables
perintah:
sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
Anda juga dapat membuka port melalui GUI dengan mengubah pengaturan firewall.
SSH Debugging dan Logging
Untuk menganalisis masalah SSH di Linux, Anda dapat mengaktifkan mode verbose atau men-debug modus . Saat Anda mengaktifkan mode ini, SSH mencetak pesan debug yang membantu memecahkan masalah dengan koneksi, konfigurasi, dan autentikasi.
Ada tiga tingkat verbositas:
- tingkat 1 (
-v
) - tingkat 2 (
-vv
) - tingkat 3 (
-vvv
)
Oleh karena itu, alih-alih mengakses server jarak jauh menggunakan sintaks ssh [server_ip]
tambahkan -v
opsi dan jalankan:
ssh -v [server_ip]
Atau, Anda dapat menggunakan:
ssh -vv [server_ip]
atau
ssh -vvv [server_ip]