Establecer una variable para un host SSH dado

Respuestas:

16

No puede dar un valor específico para una variable de entorno ssh_config, pero ciertamente puede enviar la variable de entorno existente solo a hosts específicos.

Host example.com
    SendEnv FOO

Para completar la cadena:

FOO=bar ssh [email protected]

Finalmente, el servidor remoto debe tener la variable de entorno AcceptEnven su lista sshd_config.

AcceptEnv FOO
Michael Hampton
fuente
¿Qué es precisamente lo que le gustaría evitar?
Michael Hampton
1
Tener que escribir un alias para enviar una variable con un valor dado.
phaphink
Lo siento, no puedes hacer mucho más ... a menos que puedas hacer que la computadora lea tu mente. :)
Michael Hampton
66
Gracias por confirmar mis sospechas de que ;-) Lo que me ha gustado habría sido algo así como SetVar FOO='bar'en ssh_config;)
ℝaphink
2
El caso recurrente para mí es que los sistemas antiguos no son compatibles, TERM=tmux-256colorpor lo que me gustaría un respaldo por host remoto (con comodines).
Jed
4

Puede dar un valor específico utilizando SetEnven su ~/.ssh/config, por ejemplo,

Host *
  SetEnv FOO=bar

Según man ssh_config:

Especifique directamente una o más variables de entorno y sus contenidos para enviar al servidor. De forma similar a SendEnv, el servidor debe estar preparado para aceptar la variable de entorno.

Suponiendo que su servidor tenga la siguiente línea /etc/ssh/sshd_config:

AcceptEnv LANG LC_* FOO

Verifique también: man ssh_configy man sshd_config.

kenorb
fuente
2
Nota para el lector desconcertado (como yo, cuando leí esto por primera vez): esto es nuevo desde OpenSSH 7.8, lanzado en agosto de 2018, y llevará un tiempo que esté disponible para el usuario promedio a través de las actualizaciones del sistema operativo. (Pero una vez que se vuelva común, será de lejos la mejor solución al problema)
Irfy
1

Otra idea es establecer las variables de entorno en el comando ssh y ejecutar un shell interactivo, por ejemplo. Estoy intentando invocar un shell interactivo con env-var 'MANWIDTH':

ssh example.com 'MANWIDTH=120 bash -li'
huch
fuente
0

Puede establecer los valores de configuración por host utilizando el archivo .ssh / config. Por ejemplo:

Host example.com
SendEnv FOO

Tenga en cuenta que el servidor también debe ser compatible.

usuario156525
fuente