Wenn Sie die PS1Variable 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 PermitUserEnvironmentDirektive 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_keysentsprechend 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 HOMEUmgebungsvariable so einstellen , dass sie auf dieses Verzeichnis verweist.
ssh targethost mkdir mrstatic.home
scp .bashrc targethost:mrstatic.home/
Erstellen Sie im mrstatic.homeVerzeichnis 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_USERauf 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)?