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.