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