Batas waktu idle sesi ssh

9

Mesin Solaris yang kami lakukan sebagian besar pengembangannya memiliki kebiasaan yang mengganggu dalam menentukan waktu sesi SSH. Tidak masalah apakah klien adalah desktop Ubuntu saya, desktop Solaris saya atau desktop Windows saya (dempul); faktor umum adalah mesin Solaris yang besar.

Adakah yang bisa saya lakukan untuk menghentikan hal ini terjadi? Ini menjengkelkan ketika Anda istirahat makan siang dan sesi terminal yang telah Anda buka dan konfigurasikan dengan hati-hati semuanya beku sehingga Anda harus membunuh semuanya dan membangun kembali semua konteks Anda.

Andrew
sumber

Jawaban:

8

Iya. Konfigurasikan SSH untuk mengirim paket keepalive .

Sophie Alpert
sumber
Kami sudah memiliki "KeepAlive Yes" di / etc / ssh / sshd_config. Itu tidak memiliki nilai ClientAliveInterval; jadi saya telah menambahkan itu dan kita akan melihat bagaimana kelanjutannya.
Andrew
1
Perlu juga dicatat bahwa Anda juga dapat melakukannya dengan cara lain. Jika Anda tidak dapat mengubah konfigurasi server, Anda bisa meminta klien ssh untuk mengirim paket keep live sebagai gantinya menggunakan ServerAliveInterval.
SpoonMeiser
Lokasi artikel itu berubah. Inilah yang sekarang: forumone.com/blogs/post/quick-tip-ssh-keepalive
John Bachir
2

Saya telah menemukan bahwa perilaku keepalive tidak berhasil. Saya mencoba menambahkan ServerAliveInterval ke skrip ~ / .ssh / config tetapi tidak cocok dengan git.

Yang akhirnya saya lakukan adalah menambahkan stempel waktu ke bilah status 'layar' saya. Ini adalah aktivitas yang cukup untuk menjaga koneksi.

Andrew
sumber
Jika Anda ingin fungsi ini di luar layar (1), periksa Spinner
Drew Stephens
1

Anda dapat mengkonfigurasi Putty untuk mengirim paket tetap hidup juga.

Dalam Pengaturan, Koneksi, Detik antara keepalives.

justinhj
sumber
1

Pertama, Anda perlu menentukan apakah shell Anda yang mengeluarkan Anda atau ssh. Untuk menguji, ssh ke mesin jarak jauh Anda, dan vi atau kurang file.

Jika lama kemudian Anda masih bisa bergerak kurang / vi, maka ssh baik-baik saja. Dalam hal ini, tentukan shell apa yang Anda gunakan, dan nonaktifkan timeout. Kemungkinan besar shell yang mengatur waktu Anda dan bukan SSH. Namun, beberapa firewall akan menutup sesi idle jika tetap tidak terkirim.

Administrator Solaris dapat mencegah Anda menonaktifkan batas waktu di shell Anda, dengan membuat pengaturan hanya-baca. Ini tidak mungkin, tetapi mungkin. Anda biasanya dapat menyiasatinya dengan menggunakan shell yang berbeda.

brianegge
sumber
1

Jika Anda kesulitan mengkonfigurasi ulang shell Anda lagi, Anda bisa menggunakan layar GNU. Jika sesi SSH Anda habis, cukup login lagi dan sambungkan kembali dan shell Anda akan sama seperti sebelumnya.

ahli statika
sumber
0

Jika Anda menjalankan tcsh pada mesin Solaris, variabel autologout dapat diatur. Jika Anda menetapkan itu ke 0 (atur autologout = 0) atau hapus atur (atur autologout) itu akan menghentikan Anda logout.

Jimmy Hedman
sumber
0

Ini mungkin herring merah, tetapi cobalah

unset TMOUT

di prompt shell Anda. Ini tentu saja berhasil bagi saya di masa lalu, tetapi saya tidak ingat apakah itu terbatas pada arsitektur tertentu (atau kerang).

dr-jan
sumber
0

Ketikkan profil shell Anda

ekspor TMOUT = 0

export TIMEOUT = 0

setatakahashi
sumber
0

Anda bisa berjalan topdi terminal lain? Itu harus menghasilkan lalu lintas reguler?

Rory
sumber
0

Spinner terdengar seperti solusi sempurna untuk masalah Anda. Itu secara berkala mengirim karakter di sesi Anda untuk menjaga waktu.

Drew Stephens
sumber
-1

Saya selalu sukses dengan 'ClientAliveInterval 300' di server linux / bsd.

afa
sumber
-1

Periksa sshdkonfigurasi Anda untuk baris seperti ini di /etc/ssh/sshd_config:

ClientAliveInterval 600
ClientAliveCountMax 0
jujur
sumber