Estoy intentando scp
un 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 scp
comando.
¿Algunas ideas?
~/.bashrc
en el servidor.Respuestas:
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:
fuente
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ó!
fuente
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.
fuente