#1 Le 04/07/2018, à 14:13
- lynn
SSH et variables d'environnement
Bonjour,
Je me connecte régulièrement à un pc distant en utilisant ssh. Certaines commandes ne retournent rien...
Exemple:
echo $XDG_SESSION_TYPE
ou
echo $XDG_CURRENT_DESKTOP
J'imagine qu'il faut exporter (ou importer..?) ces variables mais je ne sais pas vraiment faire... Merci pour vos retours.
«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»
Coluche
En ligne
#2 Le 04/07/2018, à 15:50
- Watael
Re : SSH et variables d'environnement
salut,
avec quelle commande et options te connectes-tu ?
une session SSH n'ouvre, par défaut, pas de session X, donc ces variables ne sont pas initialisées,
et tous les environnements graphiques ne les initialisent pas, non plus.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#3 Le 04/07/2018, à 16:16
- lynn
Re : SSH et variables d'environnement
Bonjour Watael,
avec quelle commande et options te connectes-tu ?
ssh -X user@ip
«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»
Coluche
En ligne
#4 Le 05/07/2018, à 16:54
- k3c
Re : SSH et variables d'environnement
Apparemment il faut déplacer tes définitions faites dans ton bashrc dans /etc/profile
Debian 12 sur Thinkpad reconditionné
Hors ligne
#5 Le 05/07/2018, à 18:37
- lynn
Re : SSH et variables d'environnement
Merci k3c mais si tu pouvais développer un peu parce que là, je nage; J'ai été sur ton lien, lu et relu la page mais je n'ai pas compris ce qu'il fallait précisément faire...
«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»
Coluche
En ligne
#6 Le 05/07/2018, à 18:46
- Watael
Re : SSH et variables d'environnement
je ne suis pas certain que cela s'applique à ton cas : les variables XDG_* sont créées par l'environnement graphique lors de l'initialisation d'une session, l'utilisateur n'a pas à y toucher/créer/modifier.
Dernière modification par Watael (Le 05/07/2018, à 18:50)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#7 Le 05/07/2018, à 19:24
- lynn
Re : SSH et variables d'environnement
Si j'ai bien compris, quand on utilise une connexion SSH sur un pc (qui a un environnement graphique actif), ça veut dire qu'on ne peut pas obtenir d'information sur la session en cours d'utilisation ou sur le type de serveur graphique et/ou certainement d'autres choses en utilisant des variables pourtant faites pour ça..?!
«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»
Coluche
En ligne
#8 Le 05/07/2018, à 19:38
- Watael
Re : SSH et variables d'environnement
je n'ai pas dit ça.
ssh -X ouvre une session graphique sur le poste distant, cependant toutes les variables d'environnement ne sont pas pertinentes (XDG_SEAT par exemple), et ne sont donc pas assignées.
essaie ces deux commandes :
ssh -XC user@serveur xterm
puis
for v in ${!XDG_*}; do echo "$v = ${!v}"; done
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#9 Le 06/07/2018, à 06:39
- lynn
Re : SSH et variables d'environnement
La première commande m'ouvre xterm et la deuxième commande lancée depuis xterm me renvoie
XDG_RUNTIME_DIR = /run/user/1000
XDG_SESSION_ID = 13
«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»
Coluche
En ligne
#10 Le 06/07/2018, à 15:51
- Watael
Re : SSH et variables d'environnement
je suis sur openBox, et il n'assigne pas XDG_SESSION_TYPE et XDG_CURRENT_DESKTOP.
ces variables existent-elles sur un environnement similaire à celui du serveur, ou si tu t'y connectes physiquement ?
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#11 Le 06/07/2018, à 15:57
- lynn
Re : SSH et variables d'environnement
ces variables existent-elles sur un environnement similaire à celui du serveur, ou si tu t'y connectes physiquement ?
Ces variables existent bien. Le serveur et le client sont des Ubuntu 18.04 avec Gnome en environnement; En somme, Ubuntu Desktop de base...
«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»
Coluche
En ligne
#12 Le 06/07/2018, à 17:16
- bruno
Re : SSH et variables d'environnement
Attention ssh -X n'ouvre pas une session graphique cela permet simplement le transfert X11 (déport d'applications graphiques exécutées par le serveur sur le client). ssh avec ou sans option -X ouvre une session en mode console.
Il est donc normal que les variables d’environnement qui sont censées indiquer le type de session graphique ou l'environnement de bureau utilisé soit vides puisque l'on est pas dans une session graphique et encore moins dans un environnement de bureau.
Dernière modification par bruno (Le 06/07/2018, à 17:17)
#13 Le 06/07/2018, à 17:32
- lynn
Re : SSH et variables d'environnement
Il est donc normal que les variables d’environnement qui sont censées indiquer le type de session graphique ou l'environnement de bureau utilisé soit vides puisque l'on est pas dans une session graphique et encore moins dans un environnement de bureau.
C'est bien ce qui me semble... Alors comment fait-on pour avoir les informations d'environnement de la session distante quand on utilise SSH?
«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»
Coluche
En ligne
#14 Le 06/07/2018, à 17:44
- bruno
Re : SSH et variables d'environnement
Il faudrait savoir pourquoi tu as besoin d'avoir ces informations et lesquelles précisément. Et surtout ce que tu entends par « session distante ».
Quand tu te connectes en ssh tu ouvres une nouvelle session indépendante de celles qui pourrait déjà être ouvertes sur le serveur.
Dernière modification par bruno (Le 06/07/2018, à 17:48)
#15 Le 06/07/2018, à 18:09
- lynn
Re : SSH et variables d'environnement
Je me suis peut-être mal exprimée. La session distante, pour moi, c'est la session en cours de fonctionnement sur le pc distant (Le pc distant n'ayant qu'un seul utilisateur).
Pour les informations, ce que je voudrais notamment, c'est savoir si la session utilisée sur le pc distant utilise l'environnement Gnome, Unity, Xfce ou autre et le type de protocole utilisé (x11, wayland, autre). Des trucs tous simples en fait... Ou pas!
«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»
Coluche
En ligne
#16 Le 07/07/2018, à 08:56
- bruno
Re : SSH et variables d'environnement
Il y a sûrement des tas de moyens de faire cela. Sur un système récent le mieux est sans doute d'utiliser loginctl.
Pour identifier les sessions :
sudo loginctl list-sessions
Pour voir les infos de base de la session ayant l'ID xx (colonne Session de la commande précédente):
sudo systemctl show-session xx
Exemple de retour sur ma machine :
$ sudo loginctl show-session 2
Id=2
User=1000
Name=bruno
Timestamp=sam. 2018-07-07 08:40:57 CEST
TimestampMonotonic=58355081
VTNr=7
Seat=seat0
Display=:0
Remote=no
Service=sddm
Desktop=KDE
Scope=session-2.scope
Leader=2119
Audit=2
Type=x11
Class=user
Active=yes
State=active
IdleHint=no
IdleSinceHint=0
IdleSinceHintMonotonic=0
#17 Le 07/07/2018, à 09:35
- lynn
Re : SSH et variables d'environnement
Merci bruno, ça fonctionne sauf que la deuxième commande, sur Ubuntu en tout cas, ce n'est pas
sudo systemctl show-session xx
mais
loginctl show-session xx
Personnellement, je n'utilises pas sudo sur ces deux commandes. Y a-t-il un intérêt particulier à le faire? À première vue, le résultat est le même.
«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»
Coluche
En ligne