Bagaimana cara menyelesaikan koneksi ssh yang ditutup oleh host jarak jauh karena tidak aktif?

14

Saat ini saya mencoba ssh to a colo, setelah 1 atau 2 menit tidak aktif, saya mendapatkan:

superuser@thecolo:~$ Connection to 10.123.45.67 closed by remote host.
Connection to 10.123.45.67 closed.
mylocalmac:~ superuser$

Selama saya mengetik sesuatu di terminal ssh, koneksi tetap terjaga. Begitu 1 atau 2 menit tidak aktif telah terjadi, saya akan mendapatkan pesan di atas. Mesin yang saya coba sambungkan adalah edisi server Ubuntu 12.04.1 LTS 64 bit. Ini bukan server fisik tetapi VMware tamu. Saya sshing dari terminal mac.

Tolong jangan bingung pertanyaan ini dengan yang serupa di situs ini dengan kata kunci ssh_exchange_identificationdi dalamnya, itu tidak terkait.

Thierry Lam
sumber

Jawaban:

17

Tambahkan yang berikut ke $ HOME / .ssh / config Anda dan semua koneksi ssh Anda akan mengirim TCPKeepAlive setiap 30 detik:

TCPKeepAlive yes
ServerAliveInterval 30
balkian
sumber
tidak dapat menemukan file konfigurasi di server
insoftservice
Anda dapat membuat file di direktori home Anda jika tidak ada
balkian
9

Jika Anda terhubung dari komputer Linux, Anda dapat menggunakan beberapa opsi langsung dari baris perintah

TCPKeepAlive: Ini menggunakan opsi KEEPALIVE dari protokol TCP / IP untuk menjaga koneksi tetap hidup setelah interval tidak aktif yang ditentukan. Pada kebanyakan sistem, ini berarti 2 jam. Jadi, dengan opsi TCPKeepAlive diteruskan ke SSH, klien SSH akan mengirim paket terenkripsi ke server SSH, menjaga koneksi TCP Anda tetap berjalan.

ssh -o TCPKeepAlive=yes [email protected]

ServerAliveInterval: Ini menetapkan interval waktu habis dalam hitungan detik, yang ditentukan oleh Anda, dari mana jika tidak ada paket yang dikirim dari klien SSH ke server SSH, SSH akan mengirim permintaan terenkripsi ke server untuk tanggapan TCP. Untuk membuat permintaan itu setiap 30 detik:

ssh -o ServerAliveInterval=30 [email protected]

Sumber

Ricciocri
sumber
0

Anda harus "menjaga"

Tergantung pada klien Anda, ini mungkin sepele atau hanya mudah - seharusnya tidak lebih sulit!

Misalnya, dalam dempul itu pada opsi koneksi (set keepalive ke nilai non-nol)

Andrew
sumber
Di mana saya mengatur keepalive? Di server atau dari mac saya? Di mana saya harus menetapkan nilai itu dan apa nilai yang disarankan?
Thierry Lam
Keepalive akan berada di klien ... dalam kasus Anda, Mac Anda. Akan ada opsi di suatu tempat!
Andrew