Pages : 1
#1 Le 09/01/2014, à 14: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, à 20: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, à 21: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, à 21:12
- kholo
Re : Connexion ssh, paramètres et commandes
bonjour JujuLand,
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
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, à 22: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
Merci
A+
Dernière modification par JujuLand (Le 09/01/2014, à 22: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, à 21:54
- JujuLand
Re : Connexion ssh, paramètres et commandes
Décidément, je dois vraiment très mal exprimer ce que je veux faire
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, à 21: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, à 19: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, à 19: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
Pages : 1