2

我有一个需要执行脚本的目标 AIX 6.1 服务器。

我的~/.bashrc目标服务器上的配置为添加变量MACHINE=1

当我 ssh 服务器并连接时,我有效地查看了~/.bashrc我的环境中的变量:

[user@source ~]$ ssh user@10.10.10.10
[user@target]
$env |grep "MACHINE"
MACHINE=1
[user@target]
$

但是当我直接env在 ssh 中执行命令时,变量没有设置:

[user@source ~]$ ssh user@10.10.10.10 "env" |grep MACHINE
[user@source ~]$

服务器上还有什么要配置的吗?

4

2 回答 2

2

您拥有的一种选择是告诉sshd您为您设置环境变量。在/etc/sshd_config

PermitUserEnvironment yes

~/.ssh/environment

MACHINE=1
于 2013-07-05T14:08:17.983 回答
2

ssh远程命令执行发生在非交互式 shell 中。因此,您的${HOME}/.bashrc,/etc/bashrc未被读取。

如果您希望ssh命令读取环境变量,请将它们添加到/etc/profile.

或者,尝试破解:

ssh user@10.10.10.10 'source ${HOME}/.bashrc; echo ${MACHINE}'
于 2013-07-05T13:33:33.557 回答