diff --git a/lib/client/session.go b/lib/client/session.go index 89043f1fb404a..a0efa898c5f54 100644 --- a/lib/client/session.go +++ b/lib/client/session.go @@ -225,22 +225,20 @@ func (ns *NodeSession) createServerSession(ctx context.Context) (*tracessh.Sessi return nil, trace.Wrap(err) } - envs := map[string]string{} - // pass language info into the remote session. langVars := []string{"LANG", "LANGUAGE"} for _, env := range langVars { if value := os.Getenv(env); value != "" { - envs[env] = value + if err := sess.Setenv(ctx, env, value); err != nil { + log.Warn(err) + } } } // pass environment variables set by client for key, val := range ns.env { - envs[key] = val - } - - if err := sess.SetEnvs(ctx, envs); err != nil { - log.Warn(err) + if err := sess.Setenv(ctx, key, val); err != nil { + log.Warn(err) + } } // if agent forwarding was requested (and we have a agent to forward), diff --git a/lib/srv/term.go b/lib/srv/term.go index 3d03a917061f8..5384c229403b6 100644 --- a/lib/srv/term.go +++ b/lib/srv/term.go @@ -693,7 +693,9 @@ func (t *remoteTerminal) prepareRemoteSession(ctx context.Context, session *trac teleport.SSHSessionID: string(scx.SessionID()), } - if err := session.SetEnvs(ctx, envs); err != nil { - t.log.WithError(err).Debug("Unable to set environment variables") + for k, v := range envs { + if err := session.Setenv(ctx, k, v); err != nil { + t.log.Debugf("Unable to set environment variable: %v: %v", k, v) + } } }