Setting a variable for a given SSH host
In ssh_config
, one can choose to export some environment variables to the host using SendEnv
.
Is there also a way to force a given value for this variable, per host? For example, would it be possible to export variable $FOO
with value bar
only when connecting to host example.com
?
Solution 1:
You can't give a specific value for an environment variable in ssh_config
, but you can certainly send the existing environment variable only to specific hosts.
Host example.com
SendEnv FOO
To complete the chain:
FOO=bar ssh [email protected]
Finally, the remote server must have the environment variable listed in AcceptEnv
in its sshd_config
.
AcceptEnv FOO
Solution 2:
You can give a specific value by using SetEnv
in your ~/.ssh/config
, e.g.
Host *
SetEnv FOO=bar
As per man ssh_config
:
Directly specify one or more environment variables and their contents to be sent to the server. Similarly to
SendEnv
, the server must be prepared to accept the environment variable.
Assuming your server got the following line in /etc/ssh/sshd_config
:
AcceptEnv LANG LC_* FOO
Check also: man ssh_config
and man sshd_config
.