Cómo determinar la razón de la tubería rota de SSH

0

Durante la última semana, mi conexión SSH a una instancia de Amazon EC2 sigue desconectándose con

  

Error de escritura: tubería rota

Al leer algunos sitios, asumí que se debía a que no se habían establecido tiempos de espera, por lo que creé un archivo ~/.ssh/config de la siguiente manera en función de

### Stop timing out connections
ServerAliveInterval 120  
ServerAliveCountMax 20  

TCPKeepAlive yes

### SSH Connection pooling for faster additional connections to a machine
ControlMaster auto  
ControlPath /tmp/ssh_mux_%h_%p_%r

Host *  
  ControlMaster auto  
  ControlPath ~/.ssh/control/%r@%h:%p  
  ControlPersist 3600  

### Make it so ssh-ing from one server to another passes keys around automagically
Host *
ForwardAgent yes

### Get rid of SSH connection delays
GSSAPIAuthentication no

### Use less encryption on servers I cant get to off-network
Host 10.* 172.* 192.168.*  
Ciphers blowfish-cbc

Estas configuraciones no parecieron tener un efecto, pero me di cuenta de que cuando estoy no en casa, la conexión permanece inactiva como lo ha hecho durante el último año. Me conecté a la instancia en dos redes distintas a la de mi wifi en casa, así que supongo que algo sucedió en casa en las últimas dos semanas para cambiar el comportamiento de la conexión SSH.

Utilizando Wireshark o de otra manera, ¿cómo puedo seguir / diagnosticar qué / dónde ocurre el problema de las tuberías SSH rotas en mi red doméstica?

Utilizando

  • Mac OS 10.7.5
  • OpenSSH_5.6p1, OpenSSL 0.9.8r 8 Feb 2011
  • Amazon EC2 AMI t1.micro
pregunta phwd 19.06.2013 - 15:38

2 respuestas

1

Comprueba la configuración local de mantener viva en tu mac. Estos fueron míos ...:

sysctl -a | grep tcp.keep
net.inet.tcp.keepidle: 3600
net.inet.tcp.keepintvl: 150
net.inet.tcp.keepinit: 75000
net.inet.tcp.keepcnt: 8

Necesitaba cambiar la configuración de keepintvl a un valor más alto:

sudo sysctl -w net.inet.tcp.keepintvl=7500

Luego, los mensajes de error ssh "write failed: Broken pipe" desaparecieron.

    
respondido por el Mike Bretz 18.11.2014 - 20:54
0

No indica qué sistema operativo se está ejecutando en su instancia de EC2. Supongamos que es una variante de Linux.

Lo primero que debe hacer es aumentar la cantidad de registros que proporciona su SSHD. Tienes dos formas de hacer esto. Puede cambiar las opciones para que SSHD siempre comience con las marcas de depuración, o podría iniciar otra instancia en un puerto no estándar. De cualquier manera, el secreto para obtener la salida de depuración es usar -d. Desde la página del manual en un servidor Mint (variante de Ubuntu)

  
    

-d Modo de depuración. El servidor envía una salida de depuración detallada a un error estándar y no se coloca en segundo plano. El servidor tampoco se bifurcará.                  y solo se procesará una conexión. Esta opción solo está destinada a la depuración del servidor. Las opciones -d múltiples aumentan la depuración                  nivel. El máximo es 3.

  

Desde su cliente, puede usar las opciones detalladas para ssh TO el servidor, como ssh -vvv [email protected] -p puerto que usó para su sshd.

Una cosa más que sugeriría es deshacerse de la mayoría de los elementos en su archivo de configuración, solo para asegurarse de que no está agregando al problema.

Ninguna de estas cosas son respuestas, pero podrían acercarte a una.

    
respondido por el Greg Cain 19.06.2013 - 18:21

Lea otras preguntas en las etiquetas