目的 sshでリモートホストでコマンドを実行するときに、PATHやその他の環境変数を設定して実行したい。 例えば、勝手にコマンドのバージョンアップができない重要なサーバで、自分のホーム以下にインストールしたコマンドをssh経由で実行したいのだが、PATHが/usr/local/binなどにしか通っていなくて困っている。 結果 sshdの設定変更 (PermitUserEnvironment=yes)、sshd再起動 ~/.ssh/environment に環境変数を書く (VAR=VAL 形式で一行一変数で) ※ "~" や "$" の置換はしてくれないので、PATHを書くときはフルパスで書くこと。 ※ ~/.ssh/rc に書いてもダメです 以下、詳細。 sshのmanによると… sshd(8)の "LOGIN PROCESS" の項目によると、sshでログインした時の処理順序は、以下: