with usuario remote password for flag ssh environment-variables forwarding

usuario - ¿Puedo reenviar variables de env sobre ssh?



ssh password param (2)

Trabajo con varios servidores diferentes, y sería útil poder establecer algunas variables de entorno de manera que estén activas en todas ellas cuando establezca SSH. El problema es que el contenido de algunas de las variables contiene información confidencial (hash). contraseñas), así que no quiero dejarlo en un archivo .bashrc. Me gustaría guardarlo solo en la memoria.

Sé que puede usar SSH para reenviar la variable DISPLAY (a través de ForwardX11) o un proceso de Agente SSH (a través de ForwardAgent), por lo que me pregunto si hay una forma de reenviar automáticamente el contenido de variables de entorno arbitrarias a través de conexiones SSH. Idealmente, algo que podría establecer en un archivo .ssh / config para que se ejecute automáticamente cuando lo necesite. ¿Algunas ideas?


No puede hacerlo automáticamente (excepto $DISPLAY que puede reenviar con -X junto con su información Xauth para que los programas remotos puedan conectarse a su pantalla) pero puede usar un script con un "documento aquí":

ssh ... <<EOF export FOO="$FOO" BAR="$BAR" PATH="/$HOME/bin:/$PATH" runRemoteCommand EOF

Las variables no escamadas se expandirán localmente y el resultado se transmitirá al lado remoto. Por lo tanto, la PATH se establecerá con el valor remoto de $HOME .


Puede, pero requiere cambiar la configuración del servidor.

Lea las entradas de AcceptEnv en sshd_config(5) y SendEnv en ssh_config(5) .

actualización :

También puede pasarlos en la línea de comando:

ssh foo@host "FOO=foo BAR=bar doz"

Con respecto a la seguridad, tenga en cuenta que cualquiera que tenga acceso a la máquina remota podrá ver las variables de entorno pasadas a cualquier proceso en ejecución.

Si desea mantener esa información en secreto, es mejor pasarla por stdin :

cat secret_info | ssh foo@host remote_program