it-swarm-tr.com

Bir SSH oturumunda Kırık boru mesajı ne anlama geliyor?

Bazen SSH oturumum bir Write failed: Broken pipe İleti. Bunun anlamı ne? Ve oturumumu nasıl açık tutabilirim?

screen hakkında biliyorum, ama aradığım cevap bu değil. Bu bir sshd yapılandırma seçeneği olduğunu düşünüyorum.

107
Peter Stuifzand

Sunucunuz çok uzun süre kullanılmayan bağlantıları kapatıyor olabilir. İstemcinizi (ServerAliveInterval) veya sunucunuzu (ClientAliveInterval) güncelleyebilirsiniz

 ServerAliveInterval
         Sets a timeout interval in seconds after which if no data has
         been received from the server, ssh(1) will send a message through
         the encrypted channel to request a response from the server.  The
         default is 0, indicating that these messages will not be sent to
         the server.  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.

Sunucunuzu güncellemek (ve sshd cihazınızı yeniden başlatmak için)

echo "ClientAliveInterval 60" | Sudo tee -a /etc/ssh/sshd_config

Veya müşteri tarafı:

echo "ServerAliveInterval 60" >> ~/.ssh/config 
92
Gert

Alternatif bir çözüm mosh - mobil Kabuk kullanmak olacaktır. SSH'nin aksine UDP ile bağlanır ve dolaşım desteklenir. Oturumunuzu evde başlatabilir, dizüstü bilgisayarınızı askıya alabilir, internete sahip olduğunuz herhangi bir yere/arkadaşlarınıza/işinize götürebilir, dizüstü bilgisayarınızı askıya alabilir ve hiçbir şey olmamış gibi çalışmaya devam edebilirsiniz. Özellikle berbat bir internet bağlantısındaysanız kullanışlıdır: Tuş vuruşlarınız sunucuya ulaşmazsa ve sürekli olarak bağlantıyı yeniden kurmaya çalışırsa anında geri bildirim gösterir.

Kurulum ve kurulum basit: Artık tüm mevcut Linux (ve birkaç Linux olmayan) dağıtımına dahil edildi ve önceki bir ssh bağlantısı yoluyla oturum başlatma ve kimlik doğrulamayı koordine ediyor. Yani ssh [email protected] mosh ile sadece mosh [email protected], mosh paketleri her iki uca da kurulmuşsa.

Bağlantı hatalarının ana nedeni, mosh'un çalışması için sunucuya bir UDP bağlantı noktasında (varsayılan aralık: 60000-61000) erişmeniz gerektiğidir. Yani sunucu bir güvenlik duvarının arkasındaysa, kendinize delik açamazsanız çoğunlukla şansınız kalmaz ( güvenlik etkileri ).

6
Perseids

Daha uzun bir bağlantı süresine sahip olmak istiyorsanız, istemciye şunları ekleyin:

echo 'ServerAliveInterval 30' | tee -a ~/.ssh/config
echo 'ServerAliveCountMax 1200' | tee -a ~/.ssh/config

ServerAliveCountMax varsayılan olarak bu 3'tür. Bu nedenle ServerAliveInterval sunucunuza 3 küçük bilgi paketi gönderdikten sonra otomatik olarak oturumu kapatır. 1200'e ayarlamak, bu işlemin en az 1200 kez gerçekleşmesi gerektiği anlamına gelir. Kısacası en az 30 * 1200 saniye (10 saat) bağlamanız gerekir.

5
Francisco Costa

Bu genellikle ağ (TCP) bağlantınızın sıfırlandığı anlamına gelir. Örneğin. İnternet sağlayıcınız sizi veya bunun gibi bir şeyi yeniden bağladı.

2
maxschlepzig

Aynı sorunu yaşadım ama beklendiği gibi değil. Aynı ağda başka bir sunucunun aynı IP adresini denediğini fark ederseniz, aynı sorunla karşılaşırsınız. Bunu çözmek için aynı IP adresinizi kullanan başka sunucular olup olmadığını kontrol etmeniz gerekir. Bu, arp komutu kullanılarak yapılabilir.

Debian kullanıyorum, bu yüzden burada başka bir sunucunun gerçekten aynı IP adresini kullanıp kullanmadığını belirlemek için kullandığım komutların bir örneği

apt-get install arp-scan
arp-scan -I eth0 -l | grep 192.168.1.42
  192.168.1.42 d4:eb:9a:f2:11:a1 (Unknown)
  192.168.1.42 f4:23:a4:38:b5:76 (Unknown) (DUP: 2)

Aynı IP adresini kullanarak iki set mac adresi göreceksiniz. Birini başka bir IP adresine ayarlayarak çakışmalardan kaçının.

1
Bill Ang

"Kırık Boru mesajı" nın bir başka nedeni, başka bir makinenin Ana Makinenizle aynı IP'yi kullanmaya çalışmasıdır.

Başka birinin bu IP'yi kullanıp kullanmadığını test etmenin basit bir yolu:

  1. Ana Makinenizi kapatın
  2. başka bir makinenin bu IP'yi kullanıp kullanmadığını görmek için aynı IP'ye ping atın

Ağınızdaki hangi makinelerin bulunduğunu bulmak için bu Unix ve Linux soru başlığını kullanabilirsiniz: Başka makinelerin yerel ağa nasıl bağlandığını bulma .

0
Josir