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.