GNU/Linux >> Znalost Linux >  >> Linux

Posílám výzvu PS1 přes ssh

Nahrajte soubor na každý vzdálený počítač, řekněte ~/.my_custom_bashrc , s vaším vlastním bash konfigurace, (v tomto případě PS1=... ) a poté spusťte ssh s:

ssh [email protected] -t "bash --rcfile ~/.my_custom_bashrc -i"

Můžete snadno použít bash fungovat jako obal pro čitelnost.


Pokud chcete poslat pouze PS1 a neobsahuje ' (jediná citace), zkuste:

ssh targethost -t "PS1='$PS1'; exec bash"

Místní .bashrc může klidně přepsat PS1 ačkoli (díky Dennisi Williamsonovi za upozornění).

Existují způsoby, jak přenášet proměnné prostředí přes ssh, ale obvykle jsou zakázány v konfiguraci serveru. Pokud PermitUserEnvironment direktiva je povolena v konfiguraci serveru a každý uživatel má svůj vlastní pár klíčů (jo, možná nebudete mít takové štěstí), můžete přidat environment="PS1=…" na řádek v ~/.ssh/authorized_keys odpovídající vašemu klíči.

Pokud si chcete ponechat vlastní konfiguraci na sdíleném uživatelském účtu, můžete si vytvořit vlastní adresář konfiguračního souboru a nastavit HOME proměnná prostředí, aby ukazovala na tento adresář.

ssh targethost mkdir mrstatic.home
scp .bashrc targethost:mrstatic.home/

Vytvořte symbolické odkazy v mrstatic.home adresář ukazující zpět na odpovídající položku v nadřazeném adresáři, když chcete sdílet soubor s ostatními uživateli.

Poté se přihlaste pomocí

ssh targethost -t 'HOME=~/mrstatic.home; exec bash'`

Pokud jste ochotni upravit dálkový ovladač .profile (nebo jiný inicializační soubor), pravděpodobně můžete svá nastavení automatizovat. Mnoho webů umožňuje LC_* prostřednictvím proměnných prostředí (normálně se používají pro nastavení národního prostředí). Pokud jsou splněny obě tyto podmínky, můžete nastavit proměnnou, která se ve skutečnosti nepoužívá pro národní prostředí, řekněme LC_USER , na straně klienta a otestujte jej na serveru .profile .

(Sdílené účty jsou samozřejmě špatný nápad, ale uvědomuji si, že možná nejste schopni tuto situaci změnit.)


ssh -t [email protected] "remote='$PS1' bash -i"

Poté na výzvu:

PS1=$remote

Linux
  1. Bash přepíše první řádek, výzva k bashu Ps1?

  2. Ssh – přesměrovat Stdout přes Ssh?

  3. Zvýraznit oddělovače cest v Ps1?

  1. Spuštění souboru skriptu přes Ssh přes Sudo?

  2. Ssh – Proč je Firefox tak pomalý oproti Ssh?

  3. Je `~#` Tilde Expanze of Bash?

  1. Jak některé aplikace přijímají kliknutí myší v Bash přes Ssh?

  2. Zobrazení výzvy Bash Hh:mm:ss?

  3. Jak porovnávat adresáře přes ssh