Estou tentando scp
um 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 scp
comando.
Alguma ideia?
~/.bashrc
no servidor.Respostas:
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:
fonte
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!
fonte
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.
fonte