scp restituisce l'errore "imprevisto <nuova>"


11

Sto provando a scpun file da un server al mio computer locale, ma mi sta dando questo errore:

protocol error: unexpected <newline>

Questa è la mia sintassi:

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

Non ha funzionato su questo server, ma poi ho provato lo stesso comando sull'altro mio server, quindi posso solo supporre che sia qualcosa di sbagliato nel mio server e non la sintassi del scpcomando.

Qualche idea?


Pubblica il tuo ~/.bashrcsul server.
quanti

Grazie per l'aiuto quanti. Ho modificato il mio .bashrc poco prima di vedere il tuo post. Il problema era che avevo una dichiarazione eco. Grazie per l'aiuto!
domenica

@Miles, ho provato ma devo aspettare 8 ore perché ho una reputazione inferiore a 100. Lo pubblicherò come risposta una volta scaduto il tempo.
domenica

Cordiali saluti, ho riscontrato questo problema e ... <sheepish> il mio comando scp era errato </sheepish>. Quindi potrebbe essere proprio quello.
ognockocaten,

Risposte:


19

Uno dei tuoi script di accesso (.bashrc / .cshrc / ecc.) Sta inviando i dati al terminale quando non dovrebbe essere. Questo sta causando l'errore di scp quando si connette e si prepara a copiare mentre inizia a ricevere dati extra che non si aspetta. Rimuovi l'output generato qui.

Puoi verificare se il tuo terminale è interattivo e emette solo testo usando il seguente codice in una bashrc. Qualcosa di equivalente esiste anche per altre shell:

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

2

Ho trovato la soluzione Il mio file .bashrc e .bash_logout sono stati impostati per echeggiarmi le informazioni ogni volta che eseguo l'accesso / disconnessione. A quanto pare, quella eco nuova linea stava dando alcuni problemi a SCP. Ho commentato le mie dichiarazioni di eco e questo ha funzionato!


-1

Ho avuto un problema simile. Il motivo era esattamente questo: ho un comando "echo" del testo "" nel mio .bashrc per stampare lo stato del proxy. E questo "eco" del testo "" stava causando il fallimento di SCP. Quindi, rimuovendo "echo" nel file .bashrc, mi vengono trasferiti i file usando scp.


1
Questo non suona in modo diverso dalle altre due risposte postate sette anni fa.
Kasperd,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.