GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Pushing meiner PS1-Eingabeaufforderung über ssh

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

an
ssh 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

Linux
  1. Wie kürze ich die Bash-Eingabeaufforderung unter Linux?

  2. Pfadtrenner in Ps1 hervorheben?

  3. Ausführen einer Skriptdatei über SSH durch Sudo?

  4. Wie erzeuge ich eine Ps1-Eingabeaufforderung in Bash oder Ksh93 ähnlich wie Tcsh?

  5. Ist `~#` eine Tilde-Erweiterung von Bash?

So passen Sie die Bash-Eingabeaufforderung unter Linux an

So übertragen Sie Dateien mit Rsync über SSH

Bash Shell PS1:10 Beispiele, um Ihr Linux wie Angelina Jolie zu machen

Wie man Verzeichnisse über ssh unterscheidet

Verwenden Sie ein Gerät über SSH?

ssh-Schlüssel ssh-agent bash und ssh-add