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 09/01/2014, à 15:41

JujuLand

Connexion ssh, paramètres et commandes

Bonjour, lors d'une connexion ssh, je lance automatique une commnade dans le .profile.

Le problème, étant que cette commande nécessite que ssh soit lancé avec le paramètre -X.
Comment, coté serveur connaître le mode de la connexion ?
Il y a bien la variable DISPLAY, malheureusement, elle est parfois indisponible depuis .profile, ou sa valeur dépend de l'état d'une connexion précédente. Idem pour les valeurs de SSH_* qui de plus ne donnent pas d'indice.

Serait-il possible lors du lancement, d'envoyer au serveur le contenu d'une variable ?

A+


Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne

#2 Le 09/01/2014, à 21:46

franckyfoys

Re : Connexion ssh, paramètres et commandes

Bonjour,

pourrais tu donner plus d'info sur le genre de commande que tu veux lancer, et quel resultat tu souhaites obtenir ?

merci

Hors ligne

#3 Le 09/01/2014, à 22:11

JujuLand

Re : Connexion ssh, paramètres et commandes

En fait, j'ai mis en place avec ssh, vino et TeamViewer un système de prise de contrôle à distance, avec pour ssh -X, un menu qui me permet d'avoir accès à diverses fonctions. Comme je veux pouvoir garder la main avec ce menu, je le lance dans un nouveau terminal.
Cà fonctionne super bien, sauf que si on oublie le param -X, le menu se plante, et c'est un peu trash, car sans -X, pas de console ni de fenêtre supplémentaire.

J'ai regardé les variables qui sont différentes entre ssh et ssh -x, mais s'il y en a une, DISPLAY, elle semble positionnée après l'exécution du .profile, ce qui ne m'intéresse pas, car je voudrai que ce soit automatique: -X => menu sinon, pas de menu.

C'est pour çà que je demandais s'il n'y avait pas de possibilité de passer quelque chose en paramètre, et donc pouvoir l'analyser dans le .profile pour choisir ou non de lancer le menu. Ou encore si on pouvait savoir coté serveur les options utilisées pour la connexion ...

Suis-je clair ?

Merci
A+


Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne

#4 Le 09/01/2014, à 22:12

kholo

Re : Connexion ssh, paramètres et commandes

bonjour JujuLand,

JujuLand a écrit :

Bonjour, lors d'une connexion ssh, je lance automatique une commnade dans le .profile.

j'ai du mal à comprendre les tenants et aboutissants
~/.profile doit être ce dont tu parles

JujuLand a écrit :

Le problème, étant que cette commande nécessite que ssh soit lancé avec le paramètre -X.

Comment, coté serveur connaître le mode de la connexion ?
Il y a bien la variable DISPLAY, malheureusement, elle est parfois indisponible depuis .profile, ou sa valeur dépend de l'état d'une connexion précédente. Idem pour les valeurs de SSH_* qui de plus ne donnent pas d'indice.

Serait-il possible lors du lancement, d'envoyer au serveur le contenu d'une variable ?

pourquoi ne pas lancer la commande comprenant ssh
ssh -X utilisateur@IPserveur 'commande'

bonne continuation

Hors ligne

#5 Le 09/01/2014, à 23:31

JujuLand

Re : Connexion ssh, paramètres et commandes

Merci pour la réponse, mais çà ne va pas.
Cà lance bien la commande, mais çà ne redonne pas la main en connexion derrière, d'autant que le profil ne quitte pas à la fin du menu.
Voici la commande de connexion, avec ou sans le &, çà ne change rien
ssh -X -p 22421 alain@192.168.1.111 'gnome-terminal --window-with-profile=maintsys&'

Et voici le shell:

##!/bin/bash

clear
echo -e "                   $gYel maintsys v0.62$noColor - $gCya Outil de paramétrage$noColor"
echo -e " "
echo -e "$gRed -1-$noColor Configuration imprimantes     $gRed -2-$noColor Applications au démarrage"
echo -e " "
echo -e "$gRed -3-$noColor Gestionnaire de mises à jour  $gRed -4-$noColor Paramètres système"
echo -e " "
echo -e "$gRed -5-$noColor Gestionnaire des services     $gRed -6-$noColor Nautilus"
echo -e " "
echo -e "$gRed -7-$noColor Liste des serveurs            $gRed -8-$noColor Console"
echo -e " "
echo -e "$gRed -9-$noColor Config ssh                    $gRed -0-$noColor Config exim4"
echo -e " "
echo -e "$gMag Faites un choix.$noColor$fMag une valeur non valide quittera$gWhi$noColor"
echo -e " "
read outil

if test -z $outil;then
   outil="X"
fi

if test $outil = "1";then 
   echo -e "$mup$mri$mri >>$gGre Configuration imprimantes$noColor"
   python /usr/share/system-config-printer/system-config-printer.py&
fi
if test $outil = "2";then 
   echo -e "$mup$mri$mri >>$gGre Applications au démarrage$noColor"
   gnome-session-properties&
fi
if test $outil = "3";then 
   echo -e "$mup$mri$mri >>$gGre Gestionnaire de mises à jour$noColor"
   update-manager&
fi
if test $outil = "4";then 
   echo -e "$mup$mri$mri >>$gGre Paramètres système$noColor"
   gnome-control-center&
fi
if test $outil = "5";then 
   echo -e "$mup$mri$mri >>$gGre Gestionnaire des services$noColor"
   simple-service-manager&
fi
if test $outil = "6";then 
   echo -e "$mup$mri$mri >>$gGre Nautilus$noColor"
   nautilus&
fi
if test $outil = "7";then 
   echo -e "$mup$mri$mri >>$gGre Liste des serveurs$noColor"
   gnome-terminal --window-with-profile=Serveurs&
fi
if test $outil = "8";then 
   echo -e "$mup$mri$mri >>$gGre Console$noColor"
   gnome-terminal&
fi
if test $outil = "9";then 
   echo -e "$mup$mri$mri >>$gGre Config ssh$noColor"
   gksudo gedit /etc/ssh/sshd_config&
fi
if test $outil = "0";then 
   echo -e "$mup$mri$mri >>$gGre Config exim4$noColor"
   gksudo gedit /etc/exim4/update-exim4.conf.conf /etc/email-addresses /etc/mailname&
fi
echo -e " "
if test $outil != "X";then
   echo -e "$gRed Attention$gCya Return$gRed   terminera l'outil lancé (sauf Console)"
fi
echo -e "          $gCya Relancer$gRed relancera la menu$noColor"
read

Et ce que j'ajoute dans le .profile du serveur:

# Added by JujuLand to manage_colors in terminal
. colors

# Added by JujuLand to retrieve ip addresses
if test -z '$SSH_CLIENT';then
   export LOCAL_IP=$(myipl)
   export PUBLIC_IP=$(myipp)
   if test -z $LOCAL_IP;then
      sleep 5
      export PUBLIC_IP=$(myipp)
      export LOCAL_IP=$(myipl)
      if test -z $LOCAL_IP;then
         sleep 5
         export PUBLIC_IP=$(myipp)
         export LOCAL_IP=$(myipl)
      fi
   fi

   # Added by JujuLand to send Public ip at each connexion to make connexion easiest for maintainer
   export MAINTENANCE=mon.mail@wanadoo.fr
   sendipp
else
   echo -e " "
   echo -e "$gCya Lancer le menu maintsys$noColor ($gYel o$noColor /$gGre N$noColor)?"
   echo -e "$gRed Attention :$gYel Vous devez avoir lancé la connexion avec$gGre -X$noColor"
   read menu
   if test -z $menu;then
      menu="n"
   fi
   if test $menu = "o";then
      gnome-terminal --window-with-profile=maintsys&
   fi
fi

Ce que je veux, c'est lancer ma commande dans un terminal et récupérer la main dans le terminal d'origine.
Et çà fonctionne très bien quand je mets la commande dans le ~/.profile du serveur.

En fait, c'est plus pour l'esthétique qu'autre chose que je voulais pouvoir en arrivée sur le serveur, dans le .profile, pouvoir automatiquement ou non, suivant la connexion -X ou pas, lancer le menu, sans ce message d'erreur quand le -X n'y est pas.

J'ai résolu en demandant avec un read, si on lance ou pas, mais c'est pas pareil hmm

Merci
A+

Dernière modification par JujuLand (Le 09/01/2014, à 23:45)


Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne

#6 Le 10/01/2014, à 22:54

JujuLand

Re : Connexion ssh, paramètres et commandes

Décidément, je dois vraiment très mal exprimer ce que je veux faire smile

Connexion ssh -X ...
Exécution dans le .profile du serveur, durant la phase de connexion,  d'une commande qui ouvre une fenêtre gnome-terminal et exécute un menu (maintsys-tool). Le profil utilisé ne ferme pas la fenêtre à la fin de la commande, et permet de relancer celle-ci. Autant dire, une fenêtre avec un menu permanent durant toute la connexion ssh..
Cette commande rend la main à la console utilisée pour la connexion (commande& dans le .profile), ce qui fait que l'on a en plus du menu, une console pour travailler.

J'ai essayé la syntaxe -f, çà semble exécuter la commande coté client, et en fin d'exécution je suis sur le client.
Bref, ce n'est pas ce que je veux.

Le man donne çà :

-f     Requests ssh to go to background just before command execution.

Je ne comprends pas trop ce qu'ils veulent dire ...

A+

Dernière modification par JujuLand (Le 10/01/2014, à 22:56)


Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne

#7 Le 11/01/2014, à 20:36

JujuLand

Re : Connexion ssh, paramètres et commandes

Effectivement, çà fonctionne, avec un petit effet de bord, c'est que çà n'utilise pas .profile, et donc ne bénéficie pas des variables d'environnement définies dedans.

Je n'ai pas réussi à faire un shell qui lance les deux commandes ...

#!/bin/bash

ssh -X -p $1 $2@$3&
sleep 2
gnome-terminal -e "ssh -X -p $1 $2@$3 -f 'gnome-terminal --window-with-profile=maintsys&'"

Résultat :

alain@Gramps-JujuLand:~/Bureau$ ./Cnx 22421 gerard 192.168.1.96
Pseudo-terminal will not be allocated because stdin is not a terminal.
 
 Lancer le menu maintsys ( o / N)?
 Attention : Vous devez avoir lancé la connexion avec -X
alain@Gramps-JujuLand:~/Bureau$ 

J'ai laissé le message , car il montre que le problème est lors de la première connexion.
Peut-être à cause du &

A+

Dernière modification par JujuLand (Le 11/01/2014, à 20:42)


Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne