2011-11-10 29 views
0

sshからコマンドを開始しようとしました非対話型 ssh接続です。私はそのためにant-sshexec接続を使用します。 http://www.raphink.info/2008/09/forcing-environment-in-ssh.htmlssh環境変数bashコマンドが見つかりません

私はの〜/ .ssh /環境を使用します。

はすべてを設定するために、私はこの記事を使用していました。 そうするために、sshd_configでPe​​rmitUserEnvironmentを "yes"に設定し、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

sshd(8)のmanページには、これは約~/.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 

またmanページで説明したように~/.ssh/environment上の権限がないことを確認します。これを試してみてください。

あなたが壊れた環境とアカウントのうち、自分自身をロックすると懸念している場合は、最初のホストにログオンして、このようなこのようなテストコマンドを実行してテスト:

ssh localhost 'echo $JAVA_HOME' 

あなたは環境変数があることを確認することができますそれらが予期した通りに設定され、何か問題が生じた場合でも、ホストにログオンしたままで変更を取り消すことができます。

+0

もし私がこれを好きなら、私はsshに適切な方法でログインすることさえできません。これは、すべての変数が利用できないことを入力することによって私に言う。 lsやcdのようなコマンドを実行することも不可能です。うまくいけば、私はいくつかのSSH接続を開いて、それをロールバックしました。 – ses

+0

それは同じように重複する変数を許可していないようです。 PATH = ...とPATH = ..のように編集後に一般的なコマンドを使用するには少なくとも1つのPATHのみを使用します。 – ses

+0

@ses:私の答えでは、重複したパスがないことに注意してください。何を追加していますか? '$ PATH'がこのファイルの中に展開されることを期待していますか? – camh

1

パスに複数の環境変数を使用しました。しかし、私が見ているものからコマンドをエクスポートしないでください。

このようにする必要があります。

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

はそれがお役に立てば幸いです。

+0

私がexport PATH = "/ home/ubuntu/java/jdk1.6.0_27/bin:$ PATH"を入れた場合 私は:Javaを見つけることができないという例外があります。 – ses

+0

-1: '〜/ .ssh/environment'はシェルスクリプトではありません。あなたは変数をエクスポートしません。 – camh

関連する問題