为所有(包括非交互式) ssh 会话以及所有用户(包括 root)设置环境变量最合适的地方是哪里?
我相信它可能在 下的脚本中/etc/profile.d/
,但我不确定在那里进行的更改不会对我的配置中的其他内容产生不利影响。
答案1
从sshd(8)
手册页中,文件部分:
~/.ssh/environment
This file is read into the environment at login (if it exists).
It can only contain empty lines, comment lines (that start with
‘#’), and assignment lines of the form name=value. The file
should be writable only by the user; it need not be readable by
anyone else. Environment processing is disabled by default and
is controlled via the PermitUserEnvironment option.
答案2
在 sshd_config 中,你可以设置例如
ForceCommand /usr/local/bin/setsshenv
看起来setsshenv
像这样:
#!/bin/bash
export VAR1=value1
export VAR2=value2
...
exec $SSH_ORIGINAL_COMMAND
我不确定这是在读取用户的 ~/.ssh/environment 脚本之前还是之后运行。