Impostazione di una variabile per un determinato host SSH


Risposte:


16

Non è possibile fornire un valore specifico per una variabile di ambiente ssh_config, ma è possibile inviare la variabile di ambiente esistente solo a host specifici.

Host example.com
    SendEnv FOO

Per completare la catena:

FOO=bar ssh user@example.com

Infine, il server remoto deve avere la variabile di ambiente elencata AcceptEnvnella sua sshd_config.

AcceptEnv FOO

CHE COSA è esattamente ciò che vorresti evitare?
Michael Hampton

1
Dover scrivere un alias per inviare una variabile con un dato valore.
inkafink

Spiacenti, non puoi fare molto altro ... a meno che tu non riesca a far leggere la tua mente al computer. :)
Michael Hampton

6
Grazie per aver confermato i miei sospetti però ;-) Quello che mi sarebbe piaciuto sarebbe stato qualcosa di simile SetVar FOO='bar'a ssh_config;)
ℝaphink

2
Il caso ricorrente per me è che i vecchi sistemi non supportano, TERM=tmux-256colorquindi mi piacerebbe un fallback per host remoto (con caratteri jolly).
Jed,

4

Puoi dare un valore specifico usando SetEnvnel tuo ~/.ssh/config, ad es

Host *
  SetEnv FOO=bar

Secondo man ssh_config:

Specificare direttamente una o più variabili di ambiente e il loro contenuto da inviare al server. Allo stesso modo SendEnv, il server deve essere pronto ad accettare la variabile di ambiente.

Supponendo che il tuo server abbia ottenuto la seguente riga in /etc/ssh/sshd_config:

AcceptEnv LANG LC_* FOO

Controlla anche: man ssh_confige man sshd_config.


2
Nota per il lettore perplesso (come me, quando l'ho letto per la prima volta): questo è nuovo da OpenSSH 7.8, rilasciato nell'agosto del 2018, e ci vorrà del tempo prima che sia disponibile per l'utente medio tramite gli aggiornamenti del sistema operativo. (Ma una volta che diventerà comune, sarà di gran lunga la migliore soluzione al problema)
Irfy,

1

Un'altra idea è quella di impostare le variabili di ambiente nel comando ssh ed eseguire una shell interattiva, ad es. sto cercando di invocare una shell interattiva con env-var 'MANWIDTH':

ssh example.com 'MANWIDTH=120 bash -li'

0

È possibile impostare i valori di configurazione per host utilizzando il file .ssh / config. Per esempio:

Host example.com
SendEnv FOO

Si noti che anche il server deve supportarlo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.