debian – ssh_config に設定された SendEnv 変数を ~/.ssh/config から無効にする方法

debian openssh redhat-enterprise-linux ssh

どこにも見当たらなかったので、このような問題にぶつかっているのは私だけでしょうか

デフォルトでは、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


タイトルとURLをコピーしました