Wenn Sie die PS1
Variable nur senden möchten und sie kein '
(einfaches Anführungszeichen) enthält, versuchen Sie Folgendes:
ssh targethost -t "PS1='$PS1'; exec bash"
Das lokale .bashrc
überschreibt möglicherweise PS1
(danke an Dennis Williamson für den Hinweis).
Es gibt Möglichkeiten, Umgebungsvariablen über ssh zu übertragen , diese sind jedoch in der Serverkonfiguration normalerweise deaktiviert. Wenn die PermitUserEnvironment
Direktive in der Serverkonfiguration aktiviert ist und jeder Benutzer ein eigenes Schlüsselpaar hat (ja, vielleicht haben Sie nicht so viel Glück), können Sie environment="PS1=…"
die Zeile ~/.ssh/authorized_keys
entsprechend Ihrem Schlüssel hinzufügen .
Wenn Sie Ihre eigene Konfiguration für ein freigegebenes Benutzerkonto beibehalten möchten, können Sie ein eigenes Konfigurationsdateiverzeichnis erstellen und die HOME
Umgebungsvariable so einstellen , dass sie auf dieses Verzeichnis verweist.
ssh targethost mkdir mrstatic.home
scp .bashrc targethost:mrstatic.home/
Erstellen Sie im mrstatic.home
Verzeichnis symbolische Links, die auf den entsprechenden Eintrag im übergeordneten Verzeichnis verweisen, wenn Sie eine Datei für die anderen Benutzer freigeben möchten.
Dann melde dich an mit
ssh targethost -t 'HOME=~/mrstatic.home; exec bash'`
Wenn Sie die Fernbedienung .profile
(oder eine andere Initialisierungsdatei) ändern möchten, können Sie Ihre Einstellungen möglicherweise automatisieren. Viele Sites lassen LC_*
Umgebungsvariablen durch (normalerweise werden sie für Gebietsschemaeinstellungen verwendet). Wenn beide Bedingungen erfüllt sind, können Sie beispielsweise LC_USER
auf der Clientseite eine Variable festlegen, die nicht für Gebietsschemas verwendet wird , und diese auf dem Server testen .profile
.
(Natürlich sind gemeinsame Konten eine schlechte Idee, aber ich weiß, dass Sie möglicherweise nicht in der Lage sind, diese Situation zu ändern.)
"PS1='$PS1' bash -i"
(und warum auch nichtexec
)?