Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

petit pb ssh

6 réponses
Avatar
François Patte
Bonjour,

J'ai un problème de config ssh et bash. J'ai trouvé (sur des pages de
config de bash) un moyen d'avoir un "prompt" coloré quand je me connecte
à une machine distante, ceci afin de différencier mes terminaux locaux
et distants.

J'ai ajouté dans le .bashrc de la machine distante les lignes suivantes:

if [ -n "$SSH_CLIENT" ]; then text=" ssh"
export PS1='[\e[1;31m\]\u@\h -\d- ${text} \W\[\e[m]$ '
fi

So far so good... ça marche, mais...

quand je fais un rsync

rsync -e ssh -auvz fp@krishna:./sanscrit/ .

j'obtiens la réponse suivante:

protocol version mismatch -- is your shell clean?
(see the rsync man page for an explanation)
rsync error: protocol incompatibility (code 2) at compat.c(171)
[receiver=3.0.6]

Y a-t-il moyen de corriger ce problème? Et comment?

Je ne connais pas grand'chose à bash (et en informatique en général!)

Merci.

--
François Patte
Université Paris Descartes

6 réponses

Avatar
Nicolas George
François Patte
, dans le message <kel9ru$2pvv$, a écrit :
quand je fais un rsync

rsync -e ssh -auvz :./sanscrit/ .

j'obtiens la réponse suivante:

protocol version mismatch -- is your shell clean?
(see the rsync man page for an explanation)
rsync error: protocol incompatibility (code 2) at compat.c(171)
[receiver=3.0.6]



Qu'est-ce que tu obtiens exactement si tu tapes ceci :

ssh true

 ?
Avatar
Philippe Weill
Le 03/02/2013 10:15, François Patte a écrit :
Bonjour,

J'ai un problème de config ssh et bash. J'ai trouvé (sur des pages de
config de bash) un moyen d'avoir un "prompt" coloré quand je me connecte
à une machine distante, ceci afin de différencier mes terminaux locaux
et distants.

J'ai ajouté dans le .bashrc de la machine distante les lignes suivantes:

if [ -n "$SSH_CLIENT" ]; then text=" ssh"
export PS1='[e[1;31m] -d- ${text} W[e[m]$ '
fi

So far so good... ça marche, mais...

quand je fais un rsync

rsync -e ssh -auvz :./sanscrit/ .

j'obtiens la réponse suivante:

protocol version mismatch -- is your shell clean?
(see the rsync man page for an explanation)
rsync error: protocol incompatibility (code 2) at compat.c(171)
[receiver=3.0.6]

Y a-t-il moyen de corriger ce problème? Et comment?



problem classique d'ecriture sur la sortie standard lors de shell non interactif


case $- in
# interactive shell
*i*) if [ -n "$SSH_CLIENT" ]; then text=" ssh"
export PS1='[e[1;31m] -d- ${text} W[e[m]$ '
fi;;
# non interactive shell
*) ;;
esac


Je ne connais pas grand'chose à bash (et en informatique en général!)

Merci.

Avatar
Nicolas George
Philippe Weill , dans le message
<510e3678$0$2306$, a écrit :
problem classique d'ecriture sur la sortie standard lors de shell non
interactif



Problème surtout d'un shell débile qui parse les mêmes fichiers de config
dans les deux cas.

Mais ça n'explique pas le problème, puisque la commande que François montre
n'est pas censée afficher quoi que ce soit.
Avatar
Philippe Weill
Le 03/02/2013 11:09, Nicolas George a écrit :
Philippe Weill , dans le message
<510e3678$0$2306$, a écrit :
problem classique d'ecriture sur la sortie standard lors de shell non
interactif



Problème surtout d'un shell débile qui parse les mêmes fichiers de config
dans les deux cas.




et il sont nombreux comme cela ok

Mais ça n'explique pas le problème, puisque la commande que François montre
n'est pas censée afficher quoi que ce soit.



effectivement

c'est le message de rsync qui m'a fait repondre cela
sans vraiement regarder la commande de prompt

il doit y avoir un echo ailleurs
Avatar
François Patte
Le 03/02/2013 11:34, Philippe Weill a écrit :
Le 03/02/2013 11:09, Nicolas George a écrit :
Philippe Weill , dans le message
<510e3678$0$2306$, a écrit :
problem classique d'ecriture sur la sortie standard lors de shell non
interactif



Problème surtout d'un shell débile qui parse les mêmes fichiers de config
dans les deux cas.




et il sont nombreux comme cela ok

Mais ça n'explique pas le problème, puisque la commande que François
montre
n'est pas censée afficher quoi que ce soit.



effectivement

c'est le message de rsync qui m'a fait repondre cela
sans vraiement regarder la commande de prompt

il doit y avoir un echo ailleurs



Ah! Mille excuses: j'ai installé le script bash, tel que je le cite, sur
plusieurs machines mais je l'ai modifié sur la machine qui me cause un
soucis avec rsync en ajoutant une ligne qui comporte un "echo", afin de
faire sauter une ligne avant d'afficher le "prompt"; le script qui me
cause du soucis est celui-ci:

if [ -n "$SSH_CLIENT" ]; then text=" ssh"
echo -e "n"
export PS1='[e[1;31m] -d- ${text} W[e[m]$ '
fi

Si je supprime la ligne: echo -e "n", rsync ne proteste plus...

Merci pour cet echo à mon problème...

Reste que je ne comprends pas ce qui se passe et pourquoi le message
d'erreur indique qu'il y a une distorsion entre les versions de rsync...
ce qui n'est pas.

Merci.

--
François Patte
Université Paris Descartes
Avatar
Nicolas George
François Patte
, dans le message <kemohf$2b9r$, a écrit :
Reste que je ne comprends pas ce qui se passe et pourquoi le message
d'erreur indique qu'il y a une distorsion entre les versions de rsync...
ce qui n'est pas.



Ton echo affichait un retour à la ligne systématiquement quand le shell
était lancé, même si c'est juste pour exécuter rsync immédiatement, et le
rsync de l'autre bout ne s'attend pas à voir ce caractère retour à la ligne.