我有一个目标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]
$
但是当我在ssh中直接执行env
命令时,未设置变量:
[user@source ~]$ ssh user@10.10.10.10 "env" |grep MACHINE
[user@source ~]$
在服务器上有更多配置吗?
答案 0 :(得分:2)
ssh
远程命令执行发生在非交互式shell中。因此,您的${HOME}/.bashrc
,/etc/bashrc
未被阅读。
如果您希望ssh
命令读取环境变量,请将其添加到/etc/profile
。
或者,尝试黑客攻击:
ssh user@10.10.10.10 'source ${HOME}/.bashrc; echo ${MACHINE}'
答案 1 :(得分:2)
您有一个选择是告诉sshd
为您设置环境变量。在/etc/sshd_config
:
PermitUserEnvironment yes
在~/.ssh/environment
:
MACHINE=1