GNU/Linux >> Belajar Linux >  >> Linux

Memperbaiki Kesalahan Pipa Rusak Dengan Koneksi SSH

Jika Anda menggunakan SSH untuk terhubung ke server Linux jarak jauh, Anda akan melihat bahwa jika sesi SSH Anda tidak aktif selama beberapa waktu dan kemudian mencoba menggunakannya lagi, sesi SSH terputus dengan pesan kesalahan seperti ini:

:client_loop: send disconnect: Broken pipe

Pada beberapa sistem, ini akan menampilkan 'Tulis gagal:Pipa rusak' atau 'Sambungan ditutup oleh host jarak jauh'.

Mari kita lihat apa yang menyebabkan kesalahan ini dan bagaimana cara menjaga koneksi SSH Anda tetap hidup.

Memperbaiki kesalahan pipa yang rusak dengan SSH

Seperti yang mungkin sudah Anda duga, koneksi SSH ditutup karena tidak aktif. Tidak ada nilai yang ditetapkan tetapi biasanya sekitar 5 menit.

Apa yang dapat Anda lakukan untuk menghindari pemutusan sesi SSH adalah dengan mengirim 'pesan hidup' baik dari server ke klien (ClientAliveInterval ) atau dari klien ke server (ServerAliveInterval ) pada interval waktu tertentu.

Dengan cara ini, Anda menjaga sesi SSH tetap hidup karena ada komunikasi antara klien dan server dan server memahami bahwa klien masih ada.

Sekarang, ada dua cara untuk melakukannya. Baik Anda mengirim pesan hidup dari klien ke server atau dari server ke klien.

  • Jika Anda terhubung ke beberapa server melalui SSH, atur di mesin Anda.
  • Jika Anda seorang sysadmin dan beberapa pengguna mengeluh tentang koneksi SSH yang sering terputus, Anda dapat mengaturnya di server.

Metode 1:Perubahan konfigurasi SSH sisi klien

Katakanlah Anda ingin menjaga koneksi SSH Anda tetap hidup dengan waktu idle hingga 10 menit (600 detik).

Saat menghubungkan ke sistem Linux jarak jauh melalui SSH, Anda dapat menyebutkan ServerAliveInterval nilai seperti ini:

ssh -o ServerAliveInterval=600 [email protected]_ip_address

Sekarang, hal ini berfungsi tetapi memasukkan opsi ini secara manual setiap kali Anda terhubung ke server melelahkan. Mengapa tidak menjadikannya permanen?

Saya harap Anda mengetahui file konfigurasi SSH. Di sisi klien, Anda dapat memanfaatkannya untuk mengatur parameter SSH tertentu untuk koneksi tertentu atau semuanya. Saya telah menjelaskan file konfigurasi SSH secara rinci di sini.

Pertama, pastikan Anda memiliki file konfigurasi ssh. Jika tidak buat:

touch ~/.ssh/config

Penting untuk memberikannya izin file yang benar jika tidak, Anda akan mendapatkan izin yang ditolak kesalahan saat menghubungkan melalui SSH.

Gunakan perintah chmod dan tambahkan izin file berikut ke dalamnya:

chmod 600 ~/.ssh/config

Jika Anda merasa malas atau tidak ingin menjelaskan secara detail, gunakan perintah ini untuk mengatur interval hidup menjadi 600 detik (10 menit):

echo "ServerAliveInterval 600" >> ~/.ssh/config 

Ini akan menetapkan nilai ServerAliveInterval menjadi 10 menit untuk semua koneksi SSH yang akan Anda gunakan. Cobalah jika Anda mau.

Jika Anda ingin membuatnya lebih tepat, Anda harus menambahkannya seperti ini:

Host *
ServerAliveInterval 600

Metode 2:Perubahan konfigurasi SSH sisi server

File konfigurasi SSH untuk server biasanya terletak di /etc/ssh/sshd_config.

Jika Anda membuka file ini, Anda akan menemukan dua parameter yang menarik di sini:

  • ClientAliveInterval : Ini adalah periode waktu tidak aktif setelah server akan mengirim pesan hidup ke klien yang terhubung dengan ssh.
  • ClientAliveCountMax :Ini adalah jumlah upaya yang akan dilakukan server untuk mengirim pesan hidup.

Katakanlah, Anda menyetel ClientAliveInterval hingga 200 detik dan ClientAliveCountMax ke 3. Ini berarti server akan mengirimkan pesan hidup setelah 200 detik. Jika tidak ada aktivitas dari klien, itu akan kembali mengirim pesan hidup pada 400 detik. Tidak ada respons/aktivitas dari klien dan pesan hidup lainnya dikirim pada 600 detik. Setelah ini (600 detik) koneksi SSH terputus.

Anda dapat mengedit /etc/ssh/sshd_config file di editor teks berbasis terminal favorit Anda seperti Vim. Cari entri ClientAliveInterval dan ClientAliveCountMax. Hapus tombol # di awal baris dan beri nilai yang sesuai.

Simpan dan keluar dari file.

Harap jangan mengatur batas waktu koneksi SSH ke beberapa jam. Itu akan membuang-buang sumber daya.

Saya harap tutorial ini membantu Anda untuk memperbaiki masalah kesalahan pipa rusak dengan koneksi SSH. Umpan balik Anda diterima.


Linux
  1. Bagaimana cara meningkatkan batas waktu Koneksi SSH

  2. Mengapa Rsync Gagal Dengan Pipa Rusak (32), Kesalahan Di Soket Io (kode 10) Di Io.c (820)??

  3. Pipa rusak EC2 ssh menghentikan proses yang sedang berjalan

  1. Cara Mengamankan Layanan SSH dengan Port Knocking

  2. SSH dengan authorized_keys ke sistem Ubuntu dengan homedir terenkripsi?

  3. Server relai SSH dengan OpenSSH

  1. WebLogic tidak memulai dengan kesalahan "tidak ada router ke tujuan"

  2. Perbaiki ::Koneksi kesalahan SSH Linux ditolak

  3. Memecahkan masalah SSH