ssh 経由でコマンドが実行できない時に読むメモ
server 上にあるコマンド hogehoge を
user@ws% ssh server hogehoge
のように呼び出すことができないことがある。
これは、「リモートコマンドを実行する時、リモート側ではログインシェルは動作しない」という ssh の動作にハメられている可能性がある。
この場合、まず以下のように
user@ws% ssh server "echo $PATH"
リモート側での PATH を確認する。ここに hogehoge への PATH が含まれていなかったら、ビンゴだ。
- server の sshd_config で PermitUserEnvironment が Yes になっているか
- server 上の ~user/.ssh/environment に PATH がちゃんと書いてあるか
- server 上の ~user/.ssh/environment に書かれている PATH に hogehoge があるか
- server の hogehoge に、user が実行できる権限があるか
このあたりを確認しよう。ちなみに sshd_config を書き換えた場合、sshd に -HUP を送ってあげる必要がある。