When using SetEnv in the .ssh/config it can only be used once. Every additional entry will be ignored. looking at readconf.c:1758 I see that options->num_setenv is being checked to be != 0 and then continuing. This leads to these configurations NOT to work as intended: SetEnv TZ=UTC SetEnv TERM=xterm Here only TZ will be set. Also when SetEnv is being used globally, it cannot be used later inside a Host definition to specify additional variables or change them.
Created attachment 3564 [details] working proof of concept patch Just a quick and dirty proof of concept, that allows overwriting the environment in a host definition and also using multiple SetEnv entries to set different env vars.