GNU/Linux >> Linux Esercitazione >  >> Linux

Spingendo il mio prompt PS1 su ssh

Carica un file su ogni macchina remota, ad esempio ~/.my_custom_bashrc , con il tuo bash personalizzato configurazione, (in questo caso PS1=... ) quindi avvia ssh con:

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

Puoi facilmente usare un bash funzione di wrapper per la leggibilità.


Se vuoi solo inviare il PS1 variabile e non contiene un ' (virgoletta singola), prova:

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

Il .bashrc locale potrebbe benissimo sovrascrivere PS1 tuttavia (grazie a Dennis Williamson per averlo segnalato).

Esistono modi per trasmettere variabili di ambiente su ssh, ma in genere sono disabilitate nella configurazione del server. Se PermitUserEnvironment direttiva è abilitata nella configurazione del server e ogni utente ha la propria coppia di chiavi (sì, potresti non essere così fortunato), puoi aggiungere environment="PS1=…" alla riga in ~/.ssh/authorized_keys corrispondente alla tua chiave.

Se desideri mantenere la tua configurazione su un account utente condiviso, puoi creare la tua directory del file di configurazione e impostare HOME variabile di ambiente per puntare a quella directory.

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

Crea link simbolici nel mrstatic.home directory che punta alla voce corrispondente nella directory padre quando vuoi condividere un file con gli altri utenti.

Quindi, accedi con

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

Se sei disposto a modificare il telecomando .profile (o altro file di inizializzazione), probabilmente puoi automatizzare le tue impostazioni. Molti siti consentono LC_* variabili d'ambiente tramite (normalmente sono utilizzate per le impostazioni locali). Se entrambe queste condizioni sono soddisfatte, puoi impostare una variabile che non è effettivamente utilizzata per le impostazioni locali, ad esempio LC_USER , lato client, e testalo nel server .profile .

(Ovviamente gli account condivisi sono una cattiva idea, ma mi rendo conto che potresti non essere nella posizione di cambiare questa situazione.)


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

Quindi, al prompt:

PS1=$remote

Linux
  1. Bash sovrascrive la prima riga, prompt Bash per Ps1?

  2. Ssh – Reindirizza Stdout su Ssh?

  3. Evidenzia i separatori di percorsi in Ps1?

  4. Eseguire un file di script su Ssh tramite Sudo?

  5. Ssh:perché Firefox è così lento rispetto a Ssh?

Come personalizzare il prompt di Bash in Linux

Come trasferire file con Rsync su SSH

Visualizzazione prompt Bash Hh:mm:ss?

Bash Shell PS1:10 esempi per rendere il tuo Linux Prompt come Angelina Jolie

proxy http su ssh, non calzini

chiavi ssh ssh-agent bash e ssh-add