ssh経由でコマンドを実行するとPATHが通らない件

リモートホストにある ~/bin/mycmd などのコマンドを実行しようとすると
$ ssh remotehost mycmd
bash: mycmd: コマンドが見つかりません
となってしまいます。
$PATHを確認してみると、
$ ssh kai 'echo $PATH'
/usr/local/bin:/bin:/usr/bin
となっており$PATHが貧弱ぅ貧弱ぅな感じです。

原因

sshの仕様で、リモートログインのときは profile(~/.bash_profileなど)が読み込まれないみたいです。
よって環境変数などがセットされない。

対策としては何通りかあるようですが、私はシンプルにコマンドを /usr/local/bin/ の下に置くように変更して対処しました。

参考

こちらの記事にもっと詳しいいろいろな対処法が紹介されています。

[FREEBSD][LINUX] SSH経由でコマンド実行すると環境変数を読まないでござる
カテゴリ: