J'essaie de transférer scp
un 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 scp
commande.
Des idées?
~/.bashrc
sur le serveur.Réponses:
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:
la source
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!
la source
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.
la source