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 を送ってあげる必要がある。