Laden Sie auf jedem Remote-Computer eine Datei hoch, sagen Sie ~/.my_custom_bashrc
, mit Ihrem benutzerdefinierten bash
Konfiguration, (in diesem Fall PS1=...
) starten Sie dann ssh
mit:
ssh [email protected] -t "bash --rcfile ~/.my_custom_bashrc -i"
Sie können ganz einfach einen bash
verwenden fungieren als Wrapper für die Lesbarkeit.
Wenn Sie nur den PS1
senden möchten -Variable, und sie enthält kein '
(einfaches Anführungszeichen), versuchen Sie:
ssh targethost -t "PS1='$PS1'; exec bash"
Der lokale .bashrc
kann durchaus PS1
überschreiben (danke an Dennis Williamson für den Hinweis).
Es gibt Möglichkeiten, Umgebungsvariablen über ssh zu übertragen, aber sie sind normalerweise in der Serverkonfiguration deaktiviert. Wenn die PermitUserEnvironment
Direktive in der Serverkonfiguration aktiviert ist und jeder Benutzer sein eigenes Schlüsselpaar hat (ja, Sie haben vielleicht nicht so viel Glück), können Sie environment="PS1=…"
hinzufügen zur Zeile in ~/.ssh/authorized_keys
entsprechend Ihrem Schlüssel.
Wenn Sie Ihre eigene Konfiguration auf einem gemeinsam genutzten Benutzerkonto behalten möchten, können Sie Ihr eigenes Konfigurationsdateiverzeichnis erstellen und den HOME
festlegen Umgebungsvariable auf dieses Verzeichnis zeigen.
ssh targethost mkdir mrstatic.home
scp .bashrc targethost:mrstatic.home/
Erstellen Sie symbolische Links im mrstatic.home
Verzeichnis, das auf den entsprechenden Eintrag im übergeordneten Verzeichnis zurückverweist, wenn Sie eine Datei mit anderen Benutzern teilen möchten.
Melden Sie sich dann mit
anssh targethost -t 'HOME=~/mrstatic.home; exec bash'`
Wenn Sie bereit sind, die Fernbedienung .profile
zu ändern (oder eine andere Initialisierungsdatei) können Sie Ihre Einstellungen wahrscheinlich automatisieren. Viele Websites erlauben LC_*
Umgebungsvariablen durch (normalerweise werden sie für Gebietsschemaeinstellungen verwendet). Wenn diese beiden Bedingungen erfüllt sind, können Sie eine Variable setzen, die eigentlich nicht für Gebietsschemas verwendet wird, z. B. LC_USER
, auf der Clientseite, und testen Sie es auf dem Server .profile
.
(Geteilte Konten sind natürlich eine schlechte Idee, aber mir ist klar, dass Sie möglicherweise nicht in der Lage sind, diese Situation zu ändern.)
ssh -t [email protected] "remote='$PS1' bash -i"
Dann an der Eingabeaufforderung:
PS1=$remote