scp retorna o erro "<newline> inesperado"

11

Estou tentando scpum arquivo de um servidor para minha máquina local, mas está me dando este erro:

protocol error: unexpected <newline>

Esta é a minha sintaxe:

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

Ele não funcionou neste servidor, mas tentei o mesmo comando no meu outro servidor, portanto, posso apenas assumir que há algo errado com meu servidor e não a sintaxe do scpcomando.

Alguma ideia?

srchulo
fonte
Por favor, poste seu ~/.bashrcno servidor.
Quanta
Obrigado pela ajuda quanta. Eu editei meu .bashrc pouco antes de ver sua postagem. A questão era que eu tinha uma declaração de eco. Obrigado pela ajuda!
srchulo 7/11
@ Miles, eu tentei, mas tenho que esperar 8 horas porque tenho uma reputação inferior a 100. Vou publicá-la como resposta quando esse tempo acabar.
srchulo 7/11
Para sua informação, encontrei este problema e ... <sheepish> meu comando scp estava incorreto </sheepish>. Então, poderia ser apenas isso.
ognockocaten

Respostas:

19

Um dos seus scripts de login (.bashrc / .cshrc / etc.) Está enviando dados para o terminal quando não deveria. Isso está causando erros no scp quando ele está se conectando e se preparando para copiar, pois começa a receber dados extras que não esperava. Remova a saída gerada aqui.

Você pode verificar se o seu terminal é interativo e apenas produz texto usando o seguinte código em um bashrc. Também existe algo equivalente para outras conchas:

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

Encontrei a solução. Meu arquivo .bashrc e .bash_logout foram configurados para fazer eco de informações sempre que eu faço logon / logout. Aparentemente, essa nova linha ecoou alguns problemas ao scp. Comentei minhas declarações de eco e isso fez o truque!

srchulo
fonte
-1

Eu tive uma questão semelhante. O motivo foi exatamente o seguinte: eu tenho um comando "echo" some text "" no meu .bashrc para imprimir o status do proxy. E esse "eco" de algum texto "" estava causando falha no scp. Portanto, removendo o "eco" no arquivo .bashrc, eu os transfiro usando o scp.

evinhas
fonte
1
Isso não soa diferente das outras duas respostas postadas sete anos atrás.
kasperd