Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 15/04/2022, à 19:08

coucou123

[Résolu] ssh , rsync et complétion automatique

Bonjour !

J'avais pour habitude d'utiliser rsync pour transférer des fichiers depuis mon serveur distant sur mon PC local.
Avec une commande du type :

rsync -a -z -v --partial --progress --checksum monserveur@XX.XXX.XXX.XX:/home/moidistant/mesfichiers/monfichier  /home/moilocal/

Je crois me souvenir que la complétion automatique fonctionnait, et du coup que ça m'aidait à écrire correctement le nom et le chemin du fichier.
Mais depuis, j'ai réinstallé mon OS, et cela ne fonctionne plus. Aurais-je oublié de faire quelque chose ?

Merci d'avance pour votre aide !

Dernière modification par coucou123 (Le 05/09/2022, à 19:00)

Hors ligne

#2 Le 15/04/2022, à 20:19

Watael

Re : [Résolu] ssh , rsync et complétion automatique

salut,

ton shell de connexion a probablement été modifié :

$ echo "$SHELL"

Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#3 Le 15/04/2022, à 20:46

MicP

Re : [Résolu] ssh , rsync et complétion automatique

Bonjour

La complétion automatique du shell courant fonctionnera pour tous les chemins et noms de fichiers et commandes qui lui sont accessibles,
mais bien sûr, le shell ne peux pas savoir quel nom de compte utilisateur, adresse IP, chemins distants et quels fichiers sont contenus dans ce chemin puisqu'il n'y a pas accès quand on est en train d'entrer la ligne de commande(s)

Dans la ligne de commande suivante, tout ce qui est en vert peut être proposé par l'auto complétion, mais il ne peut pas y avoir d'auto complétion pour ce qui est en rouge

rsync -a -z -v --partial --progress --checksum monserveur@XX.XXX.XXX.XX:/home/moidistant/mesfichiers/monfichier  /home/moilocal/


Seulement les options courtes qui n'ont pas d'équivalent au format d'option longue sont proposées par l'auto complétion :

rsync --archive --compress --verbose --partial --progress --checksum monserveur@XX.XXX.XXX.XX:/home/moidistant/mesfichiers/monfichier  /home/moilocal/

Dernière modification par MicP (Le 19/04/2022, à 22:35)

Hors ligne

#4 Le 15/04/2022, à 21:12

Watael

Re : [Résolu] ssh , rsync et complétion automatique

il ne peut pas y avoir d'auto complétion pour ce qui est en rouge

à moins que le même chemin existe aussi en local.


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#5 Le 19/04/2022, à 21:33

coucou123

Re : [Résolu] ssh , rsync et complétion automatique

MicP a écrit :

Bonjour

La complétion automatique du shell courant fonctionnera pour tous les chemins et noms de fichiers qui lui sont accessibles,
mais bien sûr, le shell ne peux pas savoir quel nom de compte utilisateur, adresse IP, chemins distants et quels fichiers sont contenus dans ce chemin puisqu'il n'y a pas accès quand on est en train d'entrer la ligne de commande(s)

Dans la ligne de commande suivante, tout ce qui est en vert peut être proposé par l'auto complétion, mais il ne peut pas y avoir d'auto complétion pour ce qui est en rouge

rsync -a -z -v --partial --progress --checksum monserveur@XX.XXX.XXX.XX:/home/moidistant/mesfichiers/monfichier  /home/moilocal/


Seulement les options courtes qui n'ont pas d'équivalent au format d'option longue sont proposées par l'auto complétion :

rsync --archive --compress --verbose --partial --progress --checksum monserveur@XX.XXX.XXX.XX:/home/moidistant/mesfichiers/monfichier  /home/moilocal/


Merci pour cette réponse détaillée !

J'étais pourtant persuadé que c'était possible et que je l'avais déjà fait big_smile
Y a-t-il un moyen de faire en sorte que  le shell ait accès à ce chemin distant quand j'entre ma commande ?

Hors ligne

#6 Le 19/04/2022, à 22:03

jplemoine

Re : [Résolu] ssh , rsync et complétion automatique

Ben non. Puisque justement, tu cherches à te connecter.
Tu as le même problème en sudo.

Tu as un fichier toto.sh dans /root. il est en root:root -rwxr-xr-x
Si tu es en utilisateur "normal" avec sudo, ça complétera /root mais pas le reste


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Déconnecté jusqu’à nouvel ordre

Hors ligne

#7 Le 20/04/2022, à 06:41

bruno

Re : [Résolu] ssh , rsync et complétion automatique

coucou123 a écrit :

Y a-t-il un moyen de faire en sorte que  le shell ait accès à ce chemin distant quand j'entre ma commande ?

Si l'objectif est de ne pas la retaper à chaque fois :
- avec Ctrl+R et en tapant le début de ta commande tu la retrouve immédiatement dans l'historique ;
- tu peux faire un alias ou un script bash.

#8 Le 05/09/2022, à 18:55

coucou123

Re : [Résolu] ssh , rsync et complétion automatique

MicP a écrit :

Bonjour

La complétion automatique du shell courant fonctionnera pour tous les chemins et noms de fichiers et commandes qui lui sont accessibles,
mais bien sûr, le shell ne peux pas savoir quel nom de compte utilisateur, adresse IP, chemins distants et quels fichiers sont contenus dans ce chemin puisqu'il n'y a pas accès quand on est en train d'entrer la ligne de commande(s)

Dans la ligne de commande suivante, tout ce qui est en vert peut être proposé par l'auto complétion, mais il ne peut pas y avoir d'auto complétion pour ce qui est en rouge

rsync -a -z -v --partial --progress --checksum monserveur@XX.XXX.XXX.XX:/home/moidistant/mesfichiers/monfichier  /home/moilocal/


Seulement les options courtes qui n'ont pas d'équivalent au format d'option longue sont proposées par l'auto complétion :

rsync --archive --compress --verbose --partial --progress --checksum monserveur@XX.XXX.XXX.XX:/home/moidistant/mesfichiers/monfichier  /home/moilocal/


Et bien en fait il y a une solution à mon problème !

Il suffit de faire une clef privée/publique (je fais ça avec Seahorse). En protégeant la clef privée avec un mot de passe.
Ensuite il faut faire reconnaître la clef par ssh-agent:

ssh-add /chemin-complet/vers-la-cle/nom-cle

(ou bien simplement ssh-add)
Ensuite je place la clef publique sur le serveur distant, dans ~/.ssh/authorized_keys.
Puis, pour me simplifier la vie, je mets ces lignes dans mon fichier .bashrc :

if ! ssh-add -l > /dev/null; then
            ssh-add ~/.ssh/id_rsa
fi

(id_rsa étant le nom de ma clef privée)
Ainsi, au démarrage du terminal, je n'ai qu'à entrer le mot de passe qui protège ma clef privée.

Ensuite, dans le .bashrc, j'ajoute les
lignes :
complete -W "$(echo `cat ~/.ssh/known_hosts | cut -f 1 -d ' ' | sed -e s/,.*//g | uniq | grep -v "\["`;)" ssh scp sftp

(pas nécessaire, finalement)

Puis, en tapant une commande rsync :

rsync -a -z -v --partial --progress --checksum monserveur@XX.XXX.XXX.XX:/home/moidistant/mesfichiers/monfichier  /home/moilocal/

Je peux utiliser l'autocompletion en appuyant su tab, pour compléter les chemins ou les noms de fichiers du serveur distant !!


Je suis assez content d'avoir trouvé ! Finalement, pour un gars qui ne s'y connaît pas trop, je me débrouille pas mal en cherchant un peu  big_smile

Dernière modification par coucou123 (Le 06/09/2022, à 16:51)

Hors ligne

#9 Le 05/09/2022, à 19:32

Watael

Re : [Résolu] ssh , rsync et complétion automatique

complete -W "$(echo `cat ~/.ssh/known_hosts | cut -f 1 -d ' ' | sed -e s/,.*//g | uniq | grep -v "\["`;)" ssh scp sftp

pourquoi echo $(...) ?
pourquoi cat ?

mon fichier n'a sans doute pas la même configuration que le tien, mais je reste perplexe devant ta ligne de commande...


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#10 Le 05/09/2022, à 22:51

coucou123

Re : [Résolu] ssh , rsync et complétion automatique

Watael a écrit :
complete -W "$(echo `cat ~/.ssh/known_hosts | cut -f 1 -d ' ' | sed -e s/,.*//g | uniq | grep -v "\["`;)" ssh scp sftp

pourquoi echo $(...) ?
pourquoi cat ?

mon fichier n'a sans doute pas la même configuration que le tien, mais je reste perplexe devant ta ligne de commande...


Pourquoi, et bien je n'en sais rien.
Mais ça fonctionne !

Hors ligne

#11 Le 05/09/2022, à 23:10

Watael

Re : [Résolu] ssh , rsync et complétion automatique

il y a des choses bien plus graves qui fonctionnent terriblement, mais, ça, ça fait partie des petites horreurs du codage. smile
ce n'est donc pas parce que ça fonctionne qu'il faut le conserver.

Dernière modification par Watael (Le 05/09/2022, à 23:10)


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#12 Le 05/09/2022, à 23:13

coucou123

Re : [Résolu] ssh , rsync et complétion automatique

Et bien si tu as quelque chose à me proposer qui te semble mieux, n'hésite pas à partager tes compétences ;-)

Dernière modification par coucou123 (Le 05/09/2022, à 23:14)

Hors ligne

#13 Le 05/09/2022, à 23:25

Watael

Re : [Résolu] ssh , rsync et complétion automatique

complete -W "$(cut -f 1 -d ' ' ~/.ssh/known_hosts | sed -e s/,.*//g | uniq | grep -v "\[")" ssh scp sftp÷

ça, c'est parce que je ne peux pas visualiser ton fichier known_hosts, et que je ne sais pas quelle information tu veux afficher.
EDIT: moi, ça, ça me suffit :

$ sort -u -k1,1 ~/.ssh/known_hosts | cut -d ' ' -f1

pour afficher les noms des hôtes auxquels je me suis déjà connecté (si j'ai bien compris ce que tu veux, et sous réserve que le format de nos fichiers known_hosts est le même).

tu peux nous donner une version expurgée de ton fichier, avec les informations correspondantes que tu veux afficher ?

Dernière modification par Watael (Le 05/09/2022, à 23:31)


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#14 Le 06/09/2022, à 15:15

judkil

Re : [Résolu] ssh , rsync et complétion automatique

coucou123 a écrit :

J'avais pour habitude d'utiliser rsync pour transférer des fichiers depuis mon serveur distant sur mon PC local

Sinon tu as Fillezilla qui est très bien, sur ton écran, tu as d'un coté l'arborescence du premier pc et d'un autre coté l'arborescence du second pc et tu peux transférer les dossiers ou fichiers par glissement. Il te faudra connaître l'adresse ip de l'ordinateur à distance et le nom de la session de ce pc

Hors ligne

#15 Le 06/09/2022, à 16:36

coucou123

Re : [Résolu] ssh , rsync et complétion automatique

Watael a écrit :

tu peux nous donner une version expurgée de ton fichier, avec les informations correspondantes que tu veux afficher ?

Je ne comprends pas ta question.
De quel fichier parles-tu ?
Je ne veux rien afficher de spécial, je veux juste que l'autocomplétion avec rsync fonctionne.

Dernière modification par coucou123 (Le 06/09/2022, à 16:50)

Hors ligne

#16 Le 06/09/2022, à 16:37

coucou123

Re : [Résolu] ssh , rsync et complétion automatique

judkil a écrit :
coucou123 a écrit :

J'avais pour habitude d'utiliser rsync pour transférer des fichiers depuis mon serveur distant sur mon PC local

Sinon tu as Fillezilla qui est très bien, sur ton écran, tu as d'un coté l'arborescence du premier pc et d'un autre coté l'arborescence du second pc et tu peux transférer les dossiers ou fichiers par glissement. Il te faudra connaître l'adresse ip de l'ordinateur à distance et le nom de la session de ce pc


Merci de ta réponse, mais cela n'a pas vraiment de rapport avec ma question initiale.

Hors ligne

#17 Le 06/09/2022, à 16:40

Watael

Re : [Résolu] ssh , rsync et complétion automatique

complete a besoin que quelque chose soit affiché, sinon il ne complète rien.

que vas-tu chercher dans .ssh.known_hosts ? et que font toutes ces commandes ?


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#18 Le 06/09/2022, à 16:45

coucou123

Re : [Résolu] ssh , rsync et complétion automatique

Watael a écrit :

que vas-tu chercher dans .ssh.known_hosts ? et que font toutes ces commandes ?

Pas la moindre idée. Ce n'est pas moi qui ai créé cette commande, je n'en ai absolument pas les compétences.

*EDIT : je viens de voir qu'en enlevant cette commande, l'autocompletion fonctionne quand même. En fait, il suffisait de faire une clef privée/publique, finalement. big_smile

Dernière modification par coucou123 (Le 06/09/2022, à 16:50)

Hors ligne

#19 Le 06/09/2022, à 16:51

Watael

Re : [Résolu] ssh , rsync et complétion automatique

eh, ben, fallait demander ! on t'aurait fait ça proprement.

c'est censé faire quoi ? compléter le nom des machines auxquelles tu t'es déjà connecté via SSH quand tu as tapé rsync, scp ou ssh, c'est ça ?
mais si tu ne sais pas, dis-nous où tu as trouvé cette commande.

Dernière modification par Watael (Le 06/09/2022, à 16:54)


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#20 Le 06/09/2022, à 16:55

coucou123

Re : [Résolu] ssh , rsync et complétion automatique

Watael a écrit :

eh, ben, fallait demander ! on t'aurait fait ça proprement.

c'est censé faire quoi ? compléter le nom des machines auxquelles tu t'es déjà connecté via SSH quand tu as tapé rsync, scp ou ssh, c'est ça ?

C'est le sujet de ce topic, justement : https://forum.ubuntu-fr.org/viewtopic.php?pid=22554113#p22554113




Watael a écrit :

mais si tu ne sais pas, dis-nous où tu as trouvé cette commande.

Je ne sais plus du tout. J'ai retrouvé ça dans mes notes.

Dernière modification par coucou123 (Le 06/09/2022, à 16:57)

Hors ligne

#21 Le 06/09/2022, à 19:36

Watael

Re : [Résolu] ssh , rsync et complétion automatique

cette note-là, tu peux la brûler !

alors, ça ne correspond pas à la demande : ça ne complète pas le nom et le chemin des fichiers.

Dernière modification par Watael (Le 06/09/2022, à 19:39)


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#22 Le 21/09/2022, à 18:22

coucou123

Re : [Résolu] ssh , rsync et complétion automatique

Effectivement, je l'ai enlevée du bashrc, et ça ne change rien, l'autocompletion fonctionne quand même ! big_smile
J'ai l'impression qu'elle fonctionne simplement car je me connecte maintenant via clef publique/privée.

Hors ligne