Saya menemukan pertanyaan ini, tapi maaf saya tidak begitu mengerti pengaturan pada dua variabel ServerAliveInterval
dan ClientAliveInterval
disebutkan dalam jawaban yang diterima. Jika server lokal saya kehabisan waktu, haruskah saya menetapkan nilai ini ke nol? Apakah waktu itu tidak akan pernah habis? Haruskah saya menyetelnya ke 300 detik atau semacamnya?
Pertanyaan saya sederhana, beberapa koneksi saya habis ketika saya menangguhkan &kemudian membatalkan penangguhan laptop saya dengan respons Write failed: Broken pipe
dan beberapa tidak. Bagaimana saya bisa mengonfigurasi sshd lokal dengan benar sehingga tidak gagal dengan pipa yang rusak?
Jawaban yang Diterima:
ServerAliveInterval:jumlah detik yang klien akan menunggu sebelum mengirim paket null ke server (agar koneksi tetap hidup).
ClientAliveInterval:jumlah detik yang server akan menunggu sebelum mengirim paket null ke klien (agar koneksi tetap hidup).
Menyetel nilai 0 (default) akan menonaktifkan fitur ini sehingga koneksi Anda dapat terputus jika tidak digunakan terlalu lama.
ServerAliveInterval tampaknya menjadi strategi paling umum untuk menjaga koneksi tetap hidup. Untuk mencegah masalah pipa yang rusak, berikut adalah konfigurasi ssh yang saya gunakan di file .ssh/config saya:
Host myhostshortcut
HostName myhost.com
User barthelemy
ServerAliveInterval 60
ServerAliveCountMax 10
Pengaturan di atas akan bekerja dengan cara berikut,
- Klien akan menunggu idle selama 60 detik (waktu ServerAliveInterval) dan, mengirim "paket null tanpa operasi" ke server dan mengharapkan respons. Jika tidak ada respon, maka akan terus mencoba proses di atas sampai 10 (ServerAliveCountMax) kali (600 detik). Jika server masih tidak merespon, maka klien memutuskan koneksi ssh.
ClientAliveCountMax di sisi server mungkin juga membantu. Ini adalah batas berapa lama klien diizinkan untuk tetap tidak merespons sebelum terputus. Nilai defaultnya adalah 3, seperti dalam tiga ClientAliveInterval.