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.logGunakan arahan di bawah untuk memulakan atau menghentikan perkhidmatan SSH menggunakan systemd.
sudosystemctl mula sshdIsu 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 sshtcp0 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 56Isu 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-tsshdPerintah 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 sudahdalammenggunakanAdalah 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_configPelabuhan3009
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 httpdsudosystemctl 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> /tcpAnda juga boleh menetapkan semula semua peraturan UFW dan memulakan semula. Itu akan membolehkan anda menyelesaikan masalah sambungan firewall dari awal.
sudotetapkan semula ufwIsu 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.