échec de la demande d'exécution scp sur le canal 0

11

J'essaie de SCP des fichiers d'un ordinateur à un autre mais je reçois

La demande d'exécution a échoué sur le canal 0 ".

Cependant, lorsque j'utilise SSH, je peux accéder à la machine sans problème. J'utilise la fonction SCP dans Cygwin si cela aide.

Ce que j'ai trouvé en recherchant en ligne parlait du fichier ".bashrc" mais le seul que j'ai trouvé est "bash.bashrc".

Voici la commande que j'ai utilisée:

scp /filelocation/file user@hostname:/folderlocation

J'ai également essayé avec l'adresse IP au lieu du nom d'hôte, mais j'ai le même résultat.

J'ai vérifié que le site distant a la commande SCP.

boule de feu
la source

Réponses:

0

Pour voir le fichier .bashrc (et les autres fichiers commençant par un point), vous devez faire

ls -a

La solution de contournement simple consiste à renommer les fichiers .profile, .bashrc, .login, .bash_profile afin qu'ils ne soient pas inclus. Ce sont des fichiers de démarrage du shell.

Si votre scp fonctionne maintenant, la réponse réside dans l'un de ces fichiers.

Fondamentalement, l'un des fichiers de démarrage du shell renvoie la sortie et gâche la négociation SSL en cours.

Cela peut être aussi simple que d'envoyer des séquences d'échappement spéciales pour définir le titre de votre fenêtre. Un autre coupable est la commande stty.

Vous souhaitez entourer la sortie vers le terminal uniquement lorsque vous êtes connecté avec

if tty -s >/dev/null 2>&1; then
    # here if have a real terminal associated to send stty commands 
    # or other special escape sequences to terminal
fi
lumière stroboscopique
la source
0

Je suis d'accord avec strobelight que cette erreur provient souvent de la sortie de fichiers d'initialisation bash .bashrc (et autres).

Il existe cependant quelques méthodes intégrées à bash pour tester les shells interactifs: référence de guide bash-scripting avancée , référence serverfault .

Ce que j'ai vu le plus souvent, c'est de tester $ PS1 pour savoir quand faire une sortie:

if [ "$PS1" ]; then
    echo "some message"
fi
Neil Katin
la source