scp devuelve el error "inesperado <nueva línea>"

11

Estoy intentando scpun archivo desde un servidor a mi máquina local, pero me está dando este error:

protocol error: unexpected <newline>

Esta es mi sintaxis:

scp user@server:/path/to/file .

No funcionó en este servidor, pero luego probé el mismo comando en mi otro servidor, por lo que solo puedo suponer que hay algo mal con mi servidor y no la sintaxis del scpcomando.

¿Algunas ideas?

srchulo
fuente
Por favor publique su ~/.bashrcen el servidor.
cuantos
Gracias por la ayuda quanta. Edité mi .bashrc justo antes de ver tu publicación. El problema era que tenía una declaración de eco. ¡Gracias por la ayuda!
srchulo
@Miles, lo intenté pero tengo que esperar 8 horas porque tengo una reputación de menos de 100. Lo publicaré como respuesta cuando se acabe ese tiempo.
srchulo
Para su información, me encontré con este problema y ... <sheepish> mi comando scp era incorrecto </sheepish>. Entonces, podría ser eso.
ognockocaten

Respuestas:

19

Uno de sus scripts de inicio de sesión (.bashrc / .cshrc / etc.) Está enviando datos al terminal cuando no debería estarlo. Esto está causando un error de scp cuando se conecta y se prepara para copiar, ya que comienza a recibir datos adicionales que no espera. Elimine la salida que se genera aquí.

Puede verificar si su terminal es interactiva y solo genera texto utilizando el siguiente código en un bashrc. También existe algo equivalente para otros proyectiles:

if shopt -q login_shell; then
    [any code that outputs text here]
fi
Andrew Case
fuente
2

Encontré la solución. Mi archivo .bashrc y .bash_logout se configuraron para hacerme eco de la información cada vez que inicio / cierre sesión. Aparentemente, esa nueva línea repetida le estaba dando algunos problemas a scp. ¡Comenté mis declaraciones de eco y eso funcionó!

srchulo
fuente
-1

Tuve un problema similar. La razón era exactamente esto: tengo un comando "echo" some text "" en mi .bashrc para imprimir el estado del proxy. Y este "eco" de algún texto "" estaba causando que scp fallara. Entonces, al eliminar el "eco" en el archivo .bashrc, me transfieren los archivos usando scp.

evinhas
fuente
1
Esto no suena diferente de las otras dos respuestas publicadas hace siete años.
kasperd