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 user@example.com

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

AcceptEnv FOO

¿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.


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'

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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.