Cara Debug Sambungan SSH

How Debug Ssh Connections



Tutorial ini akan membahas beberapa kaedah dan teknik cepat yang boleh anda gunakan untuk mendiagnosis pelbagai sambungan SSH, termasuk ketika anda tidak dapat menyambung ke SSH, Kesalahan pengesahan, dan lain-lain.

CATATAN: Sebelum memulakan, pastikan bahawa peranti yang ingin anda sambungkan berada dalam talian dan kesalahannya bukan disebabkan oleh peranti yang tidak tersedia.







Isu 1: Perkhidmatan SSH tidak berjalan

Penyebab umum ralat sambungan SSH adalah perkhidmatan tidak dijalankan pada host jauh. Ini mungkin disebabkan oleh penutupan perkhidmatan yang tidak disengajakan atau perkhidmatan tidak bermula setelah sistem dinyalakan semula.



Untuk memeriksa sama ada perkhidmatan SSH sedang berjalan, gunakan pengurus sistem menggunakan arahan:



sudostatus systemctl sshd

Perintah di atas harus melaporkan sama ada perkhidmatan berjalan atau tidak, seperti yang ditunjukkan dalam tangkapan skrin di bawah.







Penyelesaian

Untuk menyelesaikan masalah SSH yang disebabkan oleh perkhidmatan tidak berjalan, gunakan sistem untuk memulakan perkhidmatan. Sekiranya perkhidmatan bertindak balas dengan kesilapan, periksa log dan perbaiki masalah yang dilaporkan dalam log.

Gunakan arahan di bawah untuk memeriksa log perkhidmatan.

cengkaman 'sshd' /di mana/balak/author.log

Gunakan arahan di bawah untuk memulakan atau menghentikan perkhidmatan SSH menggunakan systemd.

sudosystemctl mula sshd

Isu 2: SSH di Pelabuhan Bukan Piawai

Masalah umum kedua semasa menyahpepijat sambungan SSH adalah penggunaan port yang tidak standard. Sekiranya SSH berjalan di port lain selain dari port default 22, anda tidak akan menyambung ke host jauh melainkan anda secara eksplisit menentukan port di mana SSH dijalankan.

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

[beratus-ratus@centos8 ~]$sudo netstat -ptln | cengkaman ssh
tcp0 00.0.0.0:560.0.0.0:*DAFTAR1131/sshd
tcp60 0:::56:::*DAFTAR1131/sshd

Output di atas menunjukkan port mana yang digunakan oleh perkhidmatan SSH. Dalam kes ini, ia adalah pelabuhan 56.

Penyelesaian

Untuk menyelesaikan masalah ini, anda boleh menggunakan maklumat dari netstat untuk secara jelas menentukan port dalam perintah ssh anda sebagai:

sshnama pengguna@ip -p 56

Isu 3: Perkhidmatan lain menggunakan port yang sama

Penyebab lain kesalahan sambungan SSH adalah jika perkhidmatan atau proses lain juga menggunakan port yang sama dengan perkhidmatan SSH. Sebagai contoh, jika SSH dinyatakan secara eksplisit untuk dijalankan di port 80 (idea mengerikan), perkhidmatan seperti Apache mungkin menggunakan port yang sama.

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

sudojurnal-tsshd

Perintah ini harus mengembalikan ralat seperti yang ditunjukkan di bawah, menunjukkan jika proses lain menggunakan port yang diikat SSH.

sshd[110611]: ralat: Ikut ke port80pada 0.0.0.0 gagal: Alamat sudahdalammenggunakan

Adalah baik untuk memastikan bahawa kesalahan mengikat port disebabkan oleh perkhidmatan lain, bukan langkah keselamatan seperti SELinux.

Penyelesaian

Terdapat pelbagai cara yang boleh anda gunakan untuk menyelesaikan masalah ini. Ini termasuk:

Yang pertama adalah untuk mengikat perkhidmatan SSH ke port yang berbeza. Anda boleh melakukannya dengan mengedit fail konfigurasi SSH. Contohnya, ubah entri Port ke port 3009 seperti yang ditunjukkan dalam arahan:

sudo nano /dan lain-lain/ssh/sshd_config
Pelabuhan3009

Kaedah lain yang boleh anda gunakan untuk menyelesaikan masalah ini ialah menghentikan perkhidmatan menggunakan port SSH. Sebagai contoh, hentikan perkhidmatan apache menggunakan port 80 sebagai:

sudosystemctl berhenti httpd
sudosystemctl melumpuhkan httpd

Isu 4: Firewall

Sekiranya anda telah mencuba semua kaedah di atas dan masih tidak mempunyai sambungan SSH, anda boleh beralih ke kemungkinan penyebab masalah seterusnya: sekatan Firewall. Bergantung pada kaedah Firewall yang anda gunakan (UFW atau Iptables), anda perlu memastikan bahawa firewall membenarkan sambungan SSH.

Penyelesaian

Peraturan firewall luas dan boleh berbeza-beza bergantung pada konfigurasi sistem. Oleh itu, saya tidak dapat merangkumi setiap aspek. Walau bagaimanapun, berikut adalah penyelesaian mudah untuk memastikan perkhidmatan SSH dibenarkan di UFW Firewall.

sudoufw membenarkan<ssh_port> /tcp

Anda juga boleh menetapkan semula semua peraturan UFW dan memulakan semula. Itu akan membolehkan anda menyelesaikan masalah sambungan firewall dari awal.

sudotetapkan semula ufw

Isu 5: Log Masuk Kata Laluan yang Dilumpuhkan

Kadang kala anda boleh mengkonfigurasi SSH agar tidak menerima log masuk kata laluan dan hanya menggunakan pengesahan kunci awam. Itu boleh menyebabkan masalah jika kunci awam tidak tersedia di pelayan atau kehilangan pasangan kunci peribadi anda.

Untuk memeriksa sama ada log masuk kata laluan dibenarkan, catatkan konfigurasi ssh sebagai:

[beratus-ratus@centos8]$sudo cengkamanPengesahan Kata Laluan/dan lain-lain/ssh/sshd_config
#PasswordAuthentication ya
Pengesahan Kata Laluaniya
# Pengesahan Kata Laluan. Bergantung pada konfigurasi PAM anda,
# Pengesahan PAM, kemudian aktifkan ini tetapi tetapkan Pengesahan Kata Laluan

Output di atas menunjukkan bahawa log masuk kata laluan dibenarkan.

Penyelesaian

Untuk menyelesaikan masalah di atas, anda boleh menggunakan dua kaedah:

Pertama, jika anda mempunyai nilai yang ditetapkan ke tidak, ubah nilai PasswordAuthentication menjadi ya dan mulakan semula perkhidmatan ssh.

Kaedah lain ialah membuat pasangan nilai-kunci ssh dan menggunakannya untuk log masuk ke pelayan. Untuk mengetahui cara membuat pasangan kunci-nilai ssh, gunakan panduan berikut.

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

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

Kesimpulannya

Dalam panduan ringkas ini, kami membincangkan penyebab utama ralat sambungan SSH dan bagaimana anda dapat menyelesaikannya. Walaupun panduan ini merangkumi masalah umum, anda mungkin menemui ralat khusus untuk sistem anda berdasarkan konfigurasi dan kebenaran.