Ters ssh tüneli aniden / kirli olarak kesildiğinde SSH sunucusundaki bağlantı noktaları nasıl serbest bırakılır?


19

Müşterilerimizin bulunduğu yerlerde kurduğumuz, donanımın ssh sunucumuza bağlandığı ve ters bir ssh tüneli oluşturduğu bazı donanımlarımız var, böylece izleme amacıyla çeşitli istemci sistemlerine erişebiliriz.

SSH oturumunun bağlantısı kesilene kadar her şey yolunda gidiyor.

Bu olduğunda, SSH sunucumuzda ters tünel tarafından kullanılan bağlantı noktaları DİNLEME modunda takılı kalır ve uzak donanımımız sonunda tünellerini otomatik olarak yeniden bağlamaya ve yeniden kurmaya çalıştığında hatayla başarısız olur.

Uyarı: XXXX dinleme bağlantı noktası için uzaktan bağlantı noktası iletme başarısız oldu

Temiz bir bağlantıyı kesmeyi ve bağlantı noktalarını iyi serbest bırakan kursu deneyerek SSH sunucumuzda veya istemcimizde bir sorun olup olmadığını test ettim. Bir bağlantı hatasını simüle ettiğimde (örneğin istemci donanımının Ethernet bağlantı noktasını çıkarın), yukarıda açıkladığım aynı sorunu yaşıyoruz.

Bu durumu ele almanın doğru yolu nedir? Bunların tersine çevrilmiş tüneller olduğunu aklınızda bulundurun, böylece ne olursa olsun SSH sunucusunda yapılması gerekir. İdeal olarak ssh sunucu tünelleri barındıran SSH oturumu aşağı olduğunu ve kullanmakta olduğu bağlantı noktalarını serbest bırakmak için anında gerçekleştirmek gerekir. Çözüm, ilgili SSH sürecini öldürmeyi içerebilir ama aynı ssh sunucusuna bağlanan birden fazla istemcimiz var ve onları çevrimdışı tekmelemek istememeye dikkat etmeliyim.

Bu kadar olgunlaştığımdan eminim, SSHD'nin bununla başa çıkmak için bir çeşit yerleşik özelliği var ama anlayamıyorum.

Lütfen Windows kutularını yönetmeye geri dönmek zorunda kalmamamı tavsiye edin ...

FYI: Bunu Debian tabanlı bir dağıtımda çalıştırıyorum.

Yanıtlar:


18

Sen kullanmak zorunda ClientAliveIntervalGözlerinde farklı sshd_config.

ClientAliveInterval 15

Referans: man sshd_config

ClientAliveCountMax
         Sets the number of client alive messages (see below) which may be
         sent without sshd(8) receiving any messages back from the client.
         If this threshold is reached while client alive messages are
         being sent, sshd will disconnect the client, terminating the
         session.  It is important to note that the use of client alive
         messages is very different from TCPKeepAlive (below).  The client
         alive messages are sent through the encrypted channel and
         therefore will not be spoofable.  The TCP keepalive option
         enabled by TCPKeepAlive is spoofable.  The client alive mechanism
         is valuable when the client or server depend on knowing when a
         connection has become inactive.

         The default value is 3.  If ClientAliveInterval (see below) is
         set to 15, and ClientAliveCountMax is left at the default,
         unresponsive SSH clients will be disconnected after approximately
         45 seconds.  This option applies to protocol version 2 only.

 ClientAliveInterval
         Sets a timeout interval in seconds after which if no data has
         been received from the client, sshd(8) will send a message
         through the encrypted channel to request a response from the
         client.  The default is 0, indicating that these messages will
         not be sent to the client.  This option applies to protocol
         version 2 only.

Teşekkürler Clement. Bunu sunucumuzda ayarlamaya çalışacağım.
TCZ

Yapıldı ve test edildi, güzel çalışıyor. Çok teşekkür ederim.
TCZ
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.