ordre successif des commandes au login

6 réponses
Avatar
Une Bévue
sur xubuntu 11.10 / Voyager j'ai mis deux commandes à l'ouverture de
session, dans cet ordre :

ssh-add # activation de ssh-agent
...
ssh -L 63333:localhost:5432 -f yt@iMac -N # tunnel pour postgresql sur iMac

ces deux commandes m'ouvrent une fenêtre, la première pour la
passphrase, la seconde pour le mot de passe.

si je fais "la même chose" au terminal, la seconde commande (ouverture
d'un tunnel) ne me demande pas de mot de passe, car ssh-add m'a autorisé.


le problème au login est que pendant que je réponds à la fenêtre de
demande de passphrase (ssh-add) l'autre fenêtre s'ouvre, je dois donc
entrer mon mot de passe.

je me demande donc si je ne peux pas combiner les deux commandes en une
seule, du genre :

ssh-add ; ssh -L 63333:localhost:5432 -f yt@iMac -N

pour n'avoir qu'une seule fenêtre car si ssh-add est exécuté AVANT "ssh
-L 63333:localhost:5432 -f yt@iMac -N", je n'ai plus de demande de
password étant autorisé par ssh-agent ?

une idée ?

6 réponses

Avatar
Lucas Levrel
Le 3 avril 2012, Une Bévue a écrit :

je me demande donc si je ne peux pas combiner les deux commandes en une
seule, du genre :

ssh-add ; ssh -L 63333:localhost:5432 -f -N



Tu peux même mettre && à la place de ; car ainsi la seconde commande n'est
exécutée que si la première réussit.

Mais le problème n'est-il pas que ssh-add se met tout seul en tâche de
fond ? Car ta façon de faire impose déjà une exécution séquentielle. Ta
reformulation ne changera rien, normalement.

Il y a peut-être un moyen avec le shell de le forcer en avant-plan, mais
je ne sais pas lequel.

--
LL
Avatar
Une Bévue
On 03/04/12 14:54, Lucas Levrel wrote:
Tu peux même mettre && à la place de ; car ainsi la seconde commande
n'est exécutée que si la première réussit.



OK, merci, j'essaie ça asap et reposte...

Mais le problème n'est-il pas que ssh-add se met tout seul en tâche de
fond ?



Euh "tâche de fond" ?
Non, ça ouvre une fenêtre où j'entre ma passphrase et file le résultat à
ssh-agent non ?

Car ta façon de faire impose déjà une exécution séquentielle.



Ben, pas vraiment, enfin disons que ssh-tunnel est lancé avant que je
n'ai fermé ssh-add, c'est ce que j'intuite...

Ta reformulation ne changera rien, normalement.



Dans tout les k je fais l'essai avec && et je verrai bien ce qui se
passe au login.


Il y a peut-être un moyen avec le shell de le forcer en avant-plan, mais
je ne sais pas lequel.



je ne pige pas trop avant/arrière plan...
Avatar
Une Bévue
On 03/04/12 16:45, Une Bévue wrote:
OK, merci, j'essaie ça asap et reposte...



bon, ça ne marche pas, ça me dit bad passphrase...
avec :
/usr/bin/ssh-add && /usr/bin/ssh -L etc...
Avatar
Lucas Levrel
Le 3 avril 2012, Une Bévue a écrit :

je ne pige pas trop avant/arrière plan...



man bash :-)

Dans un script (ou dans un terminal !), une commande n'est exécutée que si
la précédente est terminée. Si tu ajoutes & à une ligne de commande, cette
commande est mise en arrière-plan : le shell exécute aussitôt la suivante
(dans un terminal, il te rend aussitôt la main pour taper de nouvelles
commandes).

Certaines commandes sont des scripts dont le contenu exécute des tâches en
arrière-plan ; quand tu appelles un tel script en avant-plan, il te rend
la main immédiatement, bien que le « travail » qu'il a démarré ne soit pas
fini. Ça a l'air d'être ce que fait ssh-add.

--
LL
Avatar
unbewusst.sein
Lucas Levrel wrote:


Certaines commandes sont des scripts dont le contenu exécute des tâches en
arrière-plan ; quand tu appelles un tel script en avant-plan, il te rend
la main immédiatement, bien que le « travail » qu'il a démarré ne soit pas
fini. Ça a l'air d'être ce que fait ssh-add.



oui, c'est ce que je pense aussi, c'est un peu "obligé" vu que ssh-add,
au login, càd hors d'un terminal, ouvre une fenêtre...
--
« Qui ne pète ni ne rote est voué à l'explosion. »
(Lao-Tseu)
Avatar
Francois Lafont
Bonjour,

Le 05/04/2012 13:24, Lucas Levrel a écrit :

Certaines commandes sont des scripts dont le contenu exécute des tâches
en arrière-plan ; quand tu appelles un tel script en avant-plan, il te
rend la main immédiatement, bien que le « travail » qu'il a démarré ne
soit pas fini. Ça a l'air d'être ce que fait ssh-add.



Je n'ai vraiment pas tout suivi dans ce fil (je dirais même que j'ai
quasiment rien suivi), simplement juste au cas ça peut aider je voulais
préciser qu'il existe la commande wait qui permet d'attendre que les
processus en arrière-plan soient terminés.

--
François Lafont