Linux 未找到ssh环境变量bash命令
我尝试从ssh非交互式的ssh连接启动一些命令。我使用ant sshexec连接来实现这一点 为了设置所有内容,我使用了本文: 我使用~/.ssh/environment。 为了做到这一点,我在sshd_config中将PermitUserEnvironment设置为“yes”,然后重新启动sshd 在my.ssh/environment中,我有以下内容:Linux 未找到ssh环境变量bash命令,linux,variables,ssh,Linux,Variables,Ssh,我尝试从ssh非交互式的ssh连接启动一些命令。我使用ant sshexec连接来实现这一点 为了设置所有内容,我使用了本文: 我使用~/.ssh/environment。 为了做到这一点,我在sshd_config中将PermitUserEnvironment设置为“yes”,然后重新启动sshd 在my.ssh/environment中,我有以下内容: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/us
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/ubuntu/java/jdk1.6.0_27/bin
JAVA_HOME=/home/ubuntu/java/jdk1.6.0_27
#PATH=/home/ubuntu/java/jdk1.6.0_27/bin:$PATH
#PLAY_HOME=/home/ubuntu/play
当尝试使用非交互式连接进行连接时出现错误:
[sshexec] Could not execute the java executable, please make sure the JAVA_HOME environment variable is set properly (the java executable should reside at JAVA_HOME/bin/java).
但是我将java添加到路径中。您对路径使用了多个环境变量。但不要从命令导出我看到的东西 你应该那样做
export PATH="A"
export PATH="$PATH:B"
export PATH="$PATH:C"
你也可以从那里得到这种类型的帮助。
因此,请将其发布到unix
希望能有所帮助。sshd(8)的手册页说明了
~/.ssh/environment
:
It can only contain empty lines, comment lines (that start with
‘#’), and assignment lines of the form name=value.
也就是说,它根本不是一个shell脚本。您有双引号、变量展开和别名定义。这些都行不通。试试这个:
PATH=/home/ubuntu/java/jdk1.6.0_27/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
JAVA_HOME=/home/ubuntu/java/jdk1.6.0_27
PLAY_HOME=/home/ubuntu/play
还要确保~/.ssh/environment
上的权限如手册页中所述-对文件没有组或其他写入权限
如果您担心在坏环境下将自己锁定在帐户之外,请先登录主机并运行以下测试命令进行测试:
ssh localhost 'echo $JAVA_HOME'
您可以确保环境变量按预期设置,如果出现问题,您仍然登录到主机,允许您撤消更改。如果我将export PATH=“/home/ubuntu/java/jdk1.6.0_27/bin:$PATH”然后我有一个例外:它找不到Java。-1:
~/.ssh/environment
不是shell脚本。如果我这样做,我甚至不能以正确的方式登录到ssh。它通过输入告诉我:所有变量都不可用。甚至不可能执行命令,如:ls或cd。希望我打开了几个ssh连接,并将其回滚。这里似乎也不允许重复变量。比如路径=。。。路径=。。但是只使用一条路径-至少在编辑之后可以使用常规命令。@ses:注意,在我的回答中,我没有重复的路径。您正在添加什么副本,并且仍然希望$PATH
在此文件中展开吗?@ses:我已展开我的答案。这有帮助吗?这个ssh本地主机“echo$JAVA\u HOME”似乎可以工作-它显示了我的路径。。那么我不明白是什么问题。。至少与路径相关的问题已修复。。。试图理解它为什么抱怨。。