Saya memiliki koneksi ssh ke mesin yang terputus oleh mesin itu setelah 30 menit tanpa input pengguna. Namun, jika saya memulai sesuatu seperti top
, koneksi tetap hidup. Karena ini adalah mesin klien, saya tidak dapat mengkonfigurasi ulang server SSH mesin itu. Jadi saya mencari cara untuk secara otomatis mendeteksi kemalasan dan memulai sesuatu seperti top
. Semacam "screensaver" untuk Bash.
Saya tahu bahwa saya dapat melakukannya dengan screen
, tetapi sayangnya screen
tidak diinstal, dan saya tidak dapat menginstal perangkat lunak. Jadi saya harus menggunakan apa yang ditawarkan Bash.
Untuk memperjelas: Saya mencari solusi yang saya mulai sekali setelah masuk, dan kemudian saya ingin menggunakan terminal itu, berjalan pergi, kembali dua jam kemudian dan terus bekerja, tanpa mengetik apa pun sebelum berjalan pergi. Juga, saya tidak mencari hal-hal terowongan (untuk itu saya merekomendasikan alat hebat sshuttle )
Ada ide?
Jawaban:
Masalahnya adalah ada sesuatu (biasanya firewall atau load-balancer), yang menjatuhkan sesi idle. Jika Anda mengonfigurasi sesi keepalives, keepalives akan mencegah perangkat jaringan menganggap sesi sebagai idle.
Linux / Unix / Cygwin OpenSSH fix :
Perbaikan paling sederhana adalah dengan mengaktifkan ssh client keepalives; contoh ini akan mengirimkan ssh keepalive setiap 60 detik:
Jika Anda ingin mengaktifkan ini di semua sesi Anda, letakkan ini di
/etc/ssh/ssh_config
atau~/.ssh/config
:Untuk informasi lebih lanjut, lihat halaman
ssh_config
manualMemperbaiki Dempul :
Simpan ini ke PuttTY Anda "Pengaturan Default" ...
sumber
Selain jawaban Mike Pennigton , saya ingin membuat Anda sadar
ServerAliveCountMax
juga.ServerAliveInterval
akan mengirimkan keepalive setiap x detik (default adalah 0 , yang menonaktifkan fitur ini jika tidak diatur ke sesuatu yang lain).ServerAliveCountMax
kali jika tidak ada respons yang diterima. Nilai defaultnyaServerAliveCountMax
adalah 3 (lihat manual ssh_config ).Contoh: Jika Anda mengatur
ServerAliveInterval
ke 60 dan pergiServerAliveCountMax
apa adanya, ini berarti keepalive hanya akan menunggu selama3 * 60 = 180 seconds =
3 menit sebelum berhenti.Untuk meningkatkan ini ke misalnya 2 jam mencoba untuk menjaga koneksi tetap hidup, Anda dapat melakukan:
Per perintah:
Karena itu Anda harus mempertimbangkan untuk mengatur
Gigih:
Untuk membuatnya terus-menerus, tuliskan di
/etc/ssh/ssh_config
(akan menerapkan sistem-lebar) atau~/.ssh/config
(hanya berlaku pengguna):Catatan
Seperti yang ditunjukkan dengan benar , ini mungkin bukan yang Anda inginkan, tergantung pada situasi Anda:
ServerAliveCountMax
.ServerAliveCountMax
memungkinkanssh
untuk terus mencoba membangun kembali koneksi.Lihat juga:
sumber
ServerAliveCountMax
menentukan jumlah pesan server yang mungkin dikirim tanpa menerima pesan apa pun dari server. Jika Anda inginssh
keluar setelah macet (sehingga Anda dapat memulai ulang), Anda sebenarnya harus mengaturServerAliveCountMax
ke angka yang rendah . Lihat halaman manual OP yang ditautkan.Saya menggunakan Mobaxterm dan juga menemui masalah ini. Mobaxterm juga dikirimkan dengan opsi untuk menjaga klien tetap hidup ketika klien menganggur. Pergi ke
Settings -> Configuration -> SSH
. Ada bagian berjudulSSH settings
, periksa opsiSSH keepalive
. Maka masalahnya harus hilang.sumber