どこにも見当たらなかったので、このような問題にぶつかっているのは私だけでしょうか
デフォルトでは、Red Hat や Debian の ssh は、少なくともリモートセッションで LC* と LANG 変数を渡す SendEnv オプション付きの ssh_config を持っています。etc/ssh/ssh_config を変更できる root でない場合、どのようにしてこの動作を無効にすることができるのでしょうか?SendEnv オプションは蓄積されているようで、それをリセットする方法が見当たりません
また、聞かれないようにするために、ロケールをテストマシンに渡さないようにする必要があるのですが、これはロケールをマシンのデフォルトにしているスクリプトやプログラムの副作用を避けるためです
33 akostadinov 2012-10-09
あなたは唯一の人ではありませんssh_config(5)
で文書化されているように、SendEnv
の設定を解除することはできません
複数の環境変数を複数のSendEnvディレクティブに分散させることができます
テストマシンにrootがいる場合は、AcceptEnv
をクライアントから送られてきた変数を受け付けないように変更することができます
19 Ansgar Wiechers 2012-10-09
~/.ssh/config
では、SendEnv
をオーバーライドできないので、これはできません
エイリアスの使用は、ssh を呼び出すスクリプトでは機能しません
1つの選択肢は、関数をエクスポートすることです。例えば、~/.bashrc
の場合
function ssh() {
LANG="en_US.UTF-8" \
LC_ADDRESS="$LANG" \
LC_IDENTIFICATION="$LANG" \
LC_MEASUREMENT="$LANG" \
LC_MONETARY="$LANG" \
LC_NAME="$LANG" \
LC_NUMERIC="$LANG" \
LC_PAPER="$LANG" \
LC_TELEPHONE="$LANG" \
LC_TIME="$LANG" \
LC_ALL="$LANG" \
/usr/bin/ssh $@
}
export -f ssh
5 Fernando Correia 2015-08-27
man ssh
によると
-F configfile
Specifies an alternative per-user configuration file. If a con-
figuration file is given on the command line, the system-wide
configuration file (/etc/ssh/ssh_config) will be ignored. The
default for the per-user configuration file is ~/.ssh/config.
そこで、コマンドラインで(デフォルトの)設定ファイルを明示的に指定する(~/.ssh/config
は空でOK)ことで、/etc/ssh/ssh_config
に準拠せずにsshすることができます
$ touch ~/.ssh/config
$ ssh -F ~/.ssh/config your_user@your_host
~/.bashrc
でエイリアスを作ることができます
alias ssh="ssh -F ~/.ssh/config"
bashシェルを再起動すると、以下のように簡単にsshすることができます
$ ssh your_user@your_host
2 Rockallite 2017-01-22
SetEnv
オプションがあり、送信する前にLANG
を特定の値に強制的に設定することができます
manページにも書いてあります
パターンの前に
-
を付けることで、以前に設定した SendEnv 変数名をクリアすることができます
と言っていましたが、なんとかうまくいきませんでした
2 burunduk3 2019-05-12
bash を使用している場合は、エイリアス ssh=’LANG= コマンド ssh’ を設定して、他のサーバへの LANG パスを無効にすることができます
0 Tharrrk 2015-04-15
ssh経由でログインしているときにsu - youruser
を使用します。これにより、ユーザの環境が再初期化されます
実際には、新しい環境で新しいセッションを初期化します
0 Lambert 2015-04-15