Cara Men-debug Koneksi SSH

How Debug Ssh Connections



Tutorial ini akan membahas beberapa metode dan teknik cepat yang dapat Anda gunakan untuk mendiagnosis berbagai koneksi SSH, termasuk ketika Anda tidak dapat terhubung ke SSH, kesalahan Otentikasi, dan semacamnya.

CATATAN: Sebelum memulai, pastikan perangkat yang ingin Anda sambungkan sedang online dan kesalahannya bukan karena perangkat tidak tersedia.







Masalah 1: Layanan SSH tidak Berjalan

Penyebab umum kesalahan koneksi SSH adalah layanan tidak berjalan pada host jarak jauh. Ini dapat terjadi karena penghentian layanan yang tidak disengaja atau layanan tidak dimulai setelah sistem di-boot ulang.



Untuk memeriksa apakah layanan SSH berjalan, gunakan manajer sistem menggunakan perintah:



sudosystemctl status sshd

Perintah di atas harus melaporkan jika layanan berjalan atau tidak, seperti yang ditunjukkan pada tangkapan layar di bawah.







Larutan

Untuk mengatasi masalah SSH yang disebabkan oleh layanan yang tidak berjalan, gunakan sistem untuk memulai layanan. Jika layanan merespons dengan kesalahan, periksa log dan perbaiki masalah yang dilaporkan di log.

Gunakan perintah di bawah ini untuk memeriksa log layanan.

pegangan 'sshd' /di mana/catatan/auth.log

Gunakan perintah di bawah ini untuk memulai atau menghentikan layanan SSH menggunakan systemd.

sudosystemctl mulai sshd

Masalah 2: SSH pada Port Non-Standar

Masalah umum kedua saat men-debug koneksi SSH adalah penggunaan port non-standar. Jika SSH berjalan di port lain selain port default 22, Anda tidak akan terhubung ke host jarak jauh kecuali Anda secara eksplisit menentukan port tempat SSH dijalankan.

Untuk melihat port tempat SSH berjalan, gunakan alat seperti netstat seperti di bawah ini:

[ratusan@centos8 ~]$sudo status bersih -ptln | pegangan ssh
tcp0 00.0.0.0:560.0.0.0:*MENDENGARKAN1131/sshd
tcp60 0:::56:::*MENDENGARKAN1131/sshd

Output di atas menunjukkan port mana yang menjalankan layanan SSH. Dalam hal ini, ini adalah port 56.

Larutan

Untuk mengatasi masalah ini, Anda dapat menggunakan informasi dari netstat untuk secara eksplisit menentukan port dalam perintah ssh Anda sebagai:

sshnama pengguna@aku p -P 56

Masalah 3: Layanan lain menggunakan port yang sama

Penyebab lain dari kesalahan koneksi SSH adalah jika layanan atau proses lain juga menggunakan port yang sama dengan layanan SSH. Misalnya, jika SSH secara eksplisit ditentukan untuk dijalankan pada port 80 (ide yang buruk), layanan seperti Apache mungkin menggunakan port yang sama.

Untuk melihat apakah proses lain menggunakan port yang sama dengan SSH, periksa log menggunakan perintah:

sudojurnalctl-Tsshd

Perintah ini akan mengembalikan kesalahan seperti yang ditunjukkan di bawah ini, yang menunjukkan jika proses lain menggunakan port yang terikat SSH.

sshd[110611]: kesalahan: Ikat ke port80pada 0.0.0.0 gagal: Alamat sudahdi dalammenggunakan

Sebaiknya pastikan bahwa kesalahan pengikatan port disebabkan oleh layanan lain, bukan tindakan keamanan seperti SELinux.

Larutan

Ada berbagai cara yang bisa Anda gunakan untuk mengatasi masalah ini. Ini termasuk:

Yang pertama adalah mengikat layanan SSH ke port yang berbeda. Anda dapat melakukan ini dengan mengedit file konfigurasi SSH. Misalnya, ubah entri Port ke port 3009 seperti yang ditunjukkan pada perintah:

sudo nano /dll/ssh/sshd_config
Pelabuhan3009

Metode lain yang dapat Anda gunakan untuk mengatasi masalah ini adalah menghentikan layanan menggunakan port SSH. Misalnya, hentikan layanan Apache menggunakan port 80 sebagai:

sudosystemctl stop httpd
sudosystemctl menonaktifkan httpd

Masalah 4: Firewall

Jika Anda telah mencoba semua metode di atas dan masih tidak ada koneksi SSH, Anda dapat melanjutkan ke kemungkinan penyebab masalah berikutnya: Pembatasan firewall. Tergantung pada metode Firewall yang Anda gunakan (UFW atau Iptables), Anda perlu memastikan bahwa firewall mengizinkan koneksi SSH.

Larutan

Aturan firewall sangat luas dan dapat bervariasi tergantung pada konfigurasi sistem. Jadi, saya tidak bisa mencakup semua aspek. Namun, berikut ini adalah solusi sederhana untuk memastikan layanan SSH diizinkan di UFW Firewall.

sudoufw izinkan<ssh_port> /tcp

Anda juga dapat mengatur ulang semua aturan UFW dan memulai dari awal. Itu akan memungkinkan Anda untuk memecahkan masalah koneksi firewall dari awal.

sudoatur ulang ufw

Masalah 5: Login Kata Sandi Dinonaktifkan

Terkadang Anda dapat mengonfigurasi SSH untuk tidak menerima login kata sandi dan hanya menggunakan otentikasi kunci publik. Itu dapat menyebabkan masalah jika kunci publik tidak tersedia di server atau kehilangan pasangan kunci pribadi Anda.

Untuk memeriksa apakah login kata sandi diizinkan, cat konfigurasi ssh sebagai:

[ratusan@centos8]$sudo peganganOtentikasi Kata Sandi/dll/ssh/sshd_config
#PasswordAuthentication ya
Otentikasi Kata SandiYa
# Otentikasi Kata Sandi. Tergantung pada konfigurasi PAM Anda,
# Otentikasi PAM, lalu aktifkan ini tetapi atur PasswordAuthentication

Output di atas menunjukkan bahwa login password diperbolehkan.

Larutan

Untuk mengatasi masalah di atas, Anda dapat menggunakan dua metode:

Pertama, jika Anda memiliki nilai yang disetel ke tidak, ubah nilai PasswordAuthentication menjadi ya dan mulai ulang layanan ssh.

Metode lainnya adalah membuat pasangan nilai kunci ssh dan menggunakannya untuk masuk ke server. Untuk mempelajari cara membuat pasangan nilai kunci ssh, gunakan panduan berikut.

https://linuxhint.com/find-ssh-public-key/

https://linuxhint.com/use-ssh-copy-id-command/

Kesimpulan

Dalam panduan singkat ini, kami membahas penyebab utama kesalahan koneksi SSH dan bagaimana Anda dapat mengatasinya. Meskipun panduan ini mencakup masalah umum, Anda mungkin menemukan kesalahan khusus untuk sistem Anda berdasarkan konfigurasi dan izin.