ssh. Environment Variablen setzen

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
Benutzeravatar
swar0g
Beiträge: 289
Registriert: 12.12.2002 22:07:17
Wohnort: Hannover

ssh. Environment Variablen setzen

Beitrag von swar0g » 05.01.2006 13:41:20

Ich schlage mich schon seit einigen Stunden damit herum, dem SSH Sever beizubriengen, u.a. die LANG Variable nicht zurückzusetzen

Wenn ich in /etc/environment die LANG Variable eintrage, dann ist die da. Dies ist aber inakzeptable Lösung, da ich per-User Environment haben möchte.

Wenn ich in ~/.ssh/rc bzw ~/.ssh/environment jede beliebige Variable eintrage, dann bewirkt das gar nichts, sollte aber laut man ssh. Komischerweise werden die üblichen .bashrc &co abgearbeitet, alle definierten aliase sind da. Nur die Variablen werden nicht exportiert :(


Nun, ein Halberfolg. Als ich in /etc/ssh/sshd_config die Einstellung

Code: Alles auswählen

AcceptEnv LANG LANGUAGE
gemacht habe, kann ich zumindest vom SSH-Client aus die Variablen übergeben. Ok, ist schon was, bringt aber auch Probleme mit sich, vor allem, wenn ich mich ständig von ausserhalb mit unterschiedlichen Clients einlogge. Daher möchte ich die alle in irgendeine Datei reinschreiben, damit die nach dem Einloggen sofort da sind.

Wäre für jeden Tipp dankbar!!
d3 d0 c1 d3 c9 20 cd c9 d2 2c 20 d5 c2 c5 ca 20 d3 c5 c2 d1 0a

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 05.01.2006 18:06:41

Hm, ssh startet ja auch nur eine Shell und dabei wird entweder die ~/.bashrc oder die ~/.profile ausgefuehrt (bei ner Bash). Wenn du die LANG-Variable dort setzt, sollte das pro User doch kein Problem sein oder?

Benutzeravatar
Bert
Beiträge: 3751
Registriert: 16.07.2002 14:06:52
Wohnort: Dresden
Kontaktdaten:

Beitrag von Bert » 05.01.2006 19:46:18

Von Netzwerk verschoben.

Bert
Programmer: A biological machine designed to convert caffeine into code.
xmpp:bert@debianforum.de

Benutzeravatar
swar0g
Beiträge: 289
Registriert: 12.12.2002 22:07:17
Wohnort: Hannover

Beitrag von swar0g » 05.01.2006 20:46:59

nepos hat geschrieben:Hm, ssh startet ja auch nur eine Shell und dabei wird entweder die ~/.bashrc oder die ~/.profile ausgefuehrt (bei ner Bash). Wenn du die LANG-Variable dort setzt, sollte das pro User doch kein Problem sein oder?
sage ich doch, die werden nicht gesetzt. basrc wird ja ausgefürht, alle aliase werden richtig engelesen, nur die env Variablen nicht exportiert
d3 d0 c1 d3 c9 20 cd c9 d2 2c 20 d5 c2 c5 ca 20 d3 c5 c2 d1 0a

Benutzeravatar
herrchen
Beiträge: 3257
Registriert: 15.08.2005 20:45:28
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von herrchen » 05.01.2006 20:51:01

swar0g hat geschrieben:.basrc wird ja ausgefürht, alle aliase werden richtig engelesen, nur die env Variablen nicht exportiert
was steht denn drin?

herrchen

Benutzeravatar
swar0g
Beiträge: 289
Registriert: 12.12.2002 22:07:17
Wohnort: Hannover

Beitrag von swar0g » 06.01.2006 12:45:53

herrchen hat geschrieben:
swar0g hat geschrieben:.basrc wird ja ausgefürht, alle aliase werden richtig engelesen, nur die env Variablen nicht exportiert
was steht denn drin?

herrchen
dies ist halt eine ganz normale .bashrc Datei, die schon seit Jahren verwendet wird, von allen denkbaren Terminalen erkannt und beim bash Start ausgeführt wird.

Da steht u.a. export LANG=bla; alias ls="bla --blaaa"; alias m="mplayer -option bla"

Das Komische ist nun, und es ist der Grund, warum ich dieses Thema überhaupt aufgemacht habe, dass nach dem Einloggen von jedem beliebigen ssh-Client aus die ganzen alias Definitionen da sind (sprich=die .bashrc wurde abgearbeitet), die Env. Variablen, die ich brauche, entweder komplett fehlen, bzw sind leer (ist z.B. bei LANG der Fall)
d3 d0 c1 d3 c9 20 cd c9 d2 2c 20 d5 c2 c5 ca 20 d3 c5 c2 d1 0a

Benutzeravatar
herrchen
Beiträge: 3257
Registriert: 15.08.2005 20:45:28
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von herrchen » 06.01.2006 14:22:01

swar0g hat geschrieben:die Env. Variablen, die ich brauche, entweder komplett fehlen, bzw sind leer (ist z.B. bei LANG der Fall)
ich kann dieses verhalten, unter "purem" x86 Sarge, nicht bestätigen.

herrchen

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 06.01.2006 16:57:29

Kommt mir auch sehr spanisch vor.
Hast du eventuell die alias-Kommandos auch noch in der ~/.profile oder so?

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 06.01.2006 17:44:01

Vielleicht ist für diesen User die Shell nicht auch auf "/bin/bash" gesetzt ?

mit "/bin/bash" als Shell funktioniert es:

Code: Alles auswählen

gms@gms1:~$ echo "export LANG=bla">>.bashrc
gms@gms1:~$ unset LANG
gms@gms1:~$ echo $LANG

gms@gms1:~$ ssh localhost
Linux gms1 2.6.15-vk-1 #1 PREEMPT Tue Jan 3 21:02:07 CET 2006 i686 GNU/Linux
Last login: Fri Jan  6 17:21:31 2006 from localhost.localdomain
gms@gms1:~$ echo $LANG
bla
gms@gms1:~$ exit
logout
Connection to localhost closed.
Dann habe ich in der "/etc/passwd" die Shell auf "/bin/sh" gesetzt:

Code: Alles auswählen

gms@gms1:~$ ssh localhost
Linux gms1 2.6.15-vk-1 #1 PREEMPT Tue Jan 3 21:02:07 CET 2006 i686 GNU/Linux
Last login: Fri Jan  6 17:21:31 2006 from localhost.localdomain
gms@gms1:~$ echo $LANG
de_AT@euro
Gruß
gms

Benutzeravatar
chabayo
Beiträge: 930
Registriert: 17.08.2005 07:44:33
Lizenz eigener Beiträge: Artistic Lizenz

Beitrag von chabayo » 10.04.2006 15:44:15

...hi.

Hm scheint als das ich die Environment in
  • ~/.ssh/environment
mit dem Schalter
  • PermitUserEnvironment yes
in
  • /etc/ssh/sshd_config
aktiviert habe.

Ich haette aber noch gern ein paar Environment Variablen vom Client mit gesetzt, so dass ich von bestimmten Rechnern z.B. die DISPLAY Variable gesetzt bekomm (immo funktioniert ssh -X nicht), vielleicht gehts ja doch !?

merci
Watt about the non-digital!?

Antworten