ssh - portable - Error de escritura: tubería rota
ssh terminal port (7)
En lugar de pantalla, recomendaría tmux, un (posiblemente) mejor competitor para la pantalla
tmux new-session -s {name}
Ese comando crea una sesión. En cualquier momento después de que quieras conectarte:
tmux a -t {name}
Tengo un servidor Ubuntu sin cabeza. Ejecuté un comando en el servidor (snapraid sync) a través de SSH desde mi Mac. El comando dijo que tomaría aproximadamente 6 horas, así que lo dejé durante la noche.
Cuando bajé esta mañana, la Terminal en la Mac dijo: "Error de escritura: tubería rota"
No estoy seguro de si el comando se ejecutó por completo. ¿Es esto un problema de tiempo de espera? Si es así, ¿cómo puedo mantener la conexión SSH viva durante la noche?
Esto debería resolver el problema de ubuntu y linux mint add:
ServerAliveInterval 120
TCPKeepAlive yes
al archivo / etc / ssh / ssh_config
Esto debería resolver el problema para la versión Mac osX: 10.8.2
añadir:
ServerAliveInterval 120
TCPKeepAlive no
a este archivo:
~/.ssh/config
O, si desea que sea un cambio global en el cliente SSH, a este archivo
/ private / etc / ssh_config
"ServerAliveInterval 120" básicamente dice "hacer ping" al servidor con un paquete NULL cada 120s, y "TCPKeepAlive no" significa no establecer la opción de socket SO_KEEPALIVE (ya que no lo necesita con ServerAliveInterval ya configurado, y aparentemente es "spoofable" "o algo raro).
De manera similar, los servidores tienen algo que podrían establecer para el mismo efecto (ClientKeepAliveInterval) pero, por lo general, usted no tiene el control sobre esa configuración.
La respuesta de jeremyforan es correcta, sin embargo, he encontrado que si estás tratando de usar scp es necesario señalarlo explícitamente a un archivo de configuración configurado como se describe, parece que no obedece a la jerarquía de configuración normal. Por ejemplo:
scp -F ~/.ssh/config myfile [email protected]:~
funciona, mientras que omitir -F todavía da como resultado el error de tubería rota.
Puedes usar utilidades de "pantalla" para eso. Simplemente conéctese al servidor a través de SSH, inicie la sesión de la pantalla mediante la ejecución del comando "pantalla", inicie su comando allí y desconéctese (no salga de la sesión de la pantalla). Cuando creas que tu comando ya está hecho, puedes conectarte al servidor y adjuntarlo a tu sesión de pantalla donde puedes ver el resultado / progreso de la ejecución del comando (en caso de que uno lo esté).
Consulte "pantalla de hombre" para más detalles.
Uso un enrutador ASUS con dos líneas de entrada de internet. Asigno mi IP a cierta línea, y funciona.
hay dos soluciones
- Para actualizar el servidor y reiniciar el servidor sshd
echo "ClientAliveInterval 60" | sudo tee -a /etc/ssh/sshd_config
- Para actualizar el cliente
echo "ServerAliveInterval 60" >> ~/.ssh/config