la solicitud de scp exec falló en el canal 0

11

Estoy tratando de SCP archivos de una computadora a otra sin embargo me sale

la solicitud ejecutiva falló en el canal 0 ".

Sin embargo, cuando uso SSH, puedo llegar a la máquina sin problemas. Estoy usando la función SCP en Cygwin si eso ayuda.

Lo que encontré al buscar en línea habló sobre el archivo ".bashrc", sin embargo, el único que encontré es "bash.bashrc".

Este es el comando que he usado:

scp /filelocation/file user@hostname:/folderlocation

También probé con la dirección IP en lugar del nombre de host, pero tengo el mismo resultado.

Verifiqué que el sitio remoto tiene el comando SCP.

bola de fuego
fuente

Respuestas:

0

Para ver el archivo .bashrc (y otros archivos que comienzan con un punto), debe hacer

ls -a

La solución simple es cambiar el nombre de los archivos .profile, .bashrc, .login, .bash_profile para que no se incluyan. Estos se conocen como archivos de inicio de shell.

Si su scp ahora funciona, la respuesta está en uno de esos archivos.

Básicamente, uno de los archivos de inicio de shell está enviando la salida de regreso y eso desordena la negociación de SSL.

Podría ser tan simple como enviar secuencias de escape especiales para configurar el título de su ventana. Otro culpable es el comando stty.

Desea rodear la salida al terminal solo cuando haya iniciado sesión

if tty -s >/dev/null 2>&1; then
    # here if have a real terminal associated to send stty commands 
    # or other special escape sequences to terminal
fi
luz estroboscópica
fuente
0

Estoy de acuerdo con strobelight en que este error a menudo proviene de la salida de archivos de inicialización de bash .bashrc (y otros).

Sin embargo, hay algunas formas de bash-builtin para probar shells interactivos: referencia de guía avanzada de scripting de bash , referencia de servidor predeterminado .

Lo que he visto con más frecuencia es probar $ PS1 para saber cuándo hacer la salida:

if [ "$PS1" ]; then
    echo "some message"
fi
Neil Katin
fuente