переменная окружения ssh команда bash не найдена - PullRequest
0 голосов
/ 10 ноября 2011

Я пытаюсь запустить некоторую команду из ssh неинтерактивного ssh-соединения. Для этого я использую соединение ant-sshexec.

Чтобы все настроить, я использовал эту статью: http://www.raphink.info/2008/09/forcing-environment-in-ssh.html

Я использую ~ / .ssh / environment. Чтобы сделать это, я установил PermitUserEnvironment на «yes» в sshd_config и перезапустил sshd.

В моем .ssh / окружении у меня есть этот контент:

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 к пути ..

Ответы [ 2 ]

2 голосов
/ 10 ноября 2011

Справочная страница для sshd(8) говорит об этом ~/.ssh/environment:

    It can only contain empty lines, comment lines (that start with
    ‘#’), and assignment lines of the form name=value.

То есть это вообще не скрипт оболочки. У вас есть двойные кавычки, расширение переменной и определение псевдонима. Ничего из этого не сработает. Попробуйте это:

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'

Вы можете убедиться, что переменные среды установлены так, как вы ожидаете, и если что-то пойдет не так, вы все равно войдете в систему на хосте, что позволит вам отменить изменения.

1 голос
/ 10 ноября 2011

Вы использовали несколько переменных окружения для путь .Но не экспортируйте из команды то, что я вижу.

Вы должны сделать это таким образом.

export PATH="A"
export PATH="$PATH:B"
export PATH="$PATH:C"

Также вы можете получить помощь этого типа оттуда.Поэтому, пожалуйста, отправьте его в Unix.

https://unix.stackexchange.com/questions/12391/how-to-run-my-c-program-from-anywhere-within-the-system-ubuntu-10-10

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...