scp renvoie une erreur «inattendue <nouvelle>»


11

J'essaie de transférer scpun fichier d'un serveur vers ma machine locale, mais cela me donne cette erreur:

protocol error: unexpected <newline>

Voici ma syntaxe:

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

Cela ne fonctionnait pas sur ce serveur, mais j'ai ensuite essayé la même commande sur mon autre serveur, donc je peux seulement supposer que c'est quelque chose qui ne va pas avec mon serveur et non la syntaxe de la scpcommande.

Des idées?


Veuillez poster votre ~/.bashrcsur le serveur.
quanta

Merci pour l'aide quanta. J'ai modifié mon .bashrc juste avant de voir votre message. Le problème était que j'avais une déclaration d'écho dedans. Merci pour l'aide!
srchulo

@Miles, j'ai essayé mais je dois attendre 8 heures car j'ai une réputation de moins de 100. Je vais l'afficher comme réponse lorsque ce temps sera écoulé.
srchulo

Pour info, j'ai rencontré ce problème et ... <sheepish> ma commande scp était incorrecte </sheepish>. Donc, ça pourrait être juste ça.
ognockocaten

Réponses:


19

L'un de vos scripts de connexion (.bashrc / .cshrc / etc.) Envoie des données au terminal alors qu'elles ne devraient pas l'être. Cela provoque une erreur de scp lorsqu'il se connecte et se prépare à copier car il commence à recevoir des données supplémentaires auxquelles il ne s'attend pas. Supprimez la sortie générée ici.

Vous pouvez vérifier si votre terminal est interactif et produire uniquement du texte en utilisant le code suivant dans un bashrc. Quelque chose d'équivalent existe également pour d'autres coquilles:

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

2

J'ai trouvé la solution. Mon fichier .bashrc et .bash_logout ont été définis pour me renvoyer des informations chaque fois que je me connecte / me déconnecte. Apparemment, cette nouvelle ligne faisant écho posait des problèmes à scp. J'ai commenté mes déclarations d'écho et cela a fait l'affaire!


-1

J'ai eu un problème similaire. La raison était exactement la suivante: j'ai une commande "echo" du texte "" dans mon .bashrc pour imprimer l'état du proxy. Et cet "écho" du texte "" provoquait l'échec de scp. Donc, en supprimant "l'écho" dans le fichier .bashrc, je suis transféré les fichiers en utilisant scp.


1
Cela ne semble pas différent des deux autres réponses publiées il y a sept ans.
kasperd
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.