ssh2连接时设置环境变量
·
1 min read
使用nodejs ssh2客户端连接服务器时可以设置环境变量吗,经过调查发现是可以的,这里Mark下。
设置环境变量
代码如下
this.conn.shell({
env: {
X_LOGIN_IP: '128.1.1.123',
X_ENVIRONMENT_VARIABLE: "desiredvalue"
}, term: 'xterm-256color', // term: 'dumb',
cols: connectOpts.cols, rows: connectOpts.rows,
}, (err, s) => {
if (err) {
console.log('ssh shell error', err);
throw err;
}
})
局限性
这个环境变量是受限于/etc/ssh/sshd_config
中是否允许指定规则变量设置,不同系统,默认允许的环境变量设置不同。
如果需要开放指定变量,设置指令是 AcceptEnv
。例子如下,即支持设置X_前缀的环境变量
默认支持设置的环境变量
正如上述所说不同系统,默认设置不同。
- Ubuntu默认为
AcceptEnv LANG LC_*
- Debian默认为
AcceptEnv LANG LC_*
- CentOS9默认未设置AcceptEnv,即不允许任何环境变量设置。
写在最后
关于客户端进行环境变量设置,你需要了解的就这些了。