ssh 接続でコマンドを投げ込みたいときに、sshd が応答する時点で有効になっていて欲しい環境変数がある。
シェルスクリプトを呼び出して、シェルスクリプト内で環境変数を設定しまくれば良いじゃないか、という意見もありますが、そのシェルスクリプトを呼び出す前に有効になっていて欲しい環境変数があったわけですよ。
具体的には、OS ユーザがたくさんあるうちの user01 さんだけ、 LANG=JA_JP
が有効な状態で sshd に返事をして欲しかった。
その設定方法。
sshd 側での設定。まず、 sshd_config にて以下パラメータを設定し sshd 再起動。
PermitUserEnvironment yes
user01 さんのホームディレクトリ内に目的の環境変数を設定。
ファイル ~user01/.ssh/environment
を用意して中身は
LANG=JA_JP
これで外から ssh 接続したとき、指定した環境変数が有効になった状態で接続できる。
※なんでこんなことしてるの
OS のベースの文字コードが SJIS で、そこから起動する sshd も SJIS で応答するので、UTF-8 文字列を送りつけるときに困る。たいへん困る。なんてことがありました。