web-dev-qa-db-ja.com

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

私はどこにもそれを見つけることができなかったので、私がそのような問題に直面しているのは私だけだと思います。

デフォルトでは、Red HatとDebianのsshには、リモートセッションでLC *およびLANG変数を渡すSendEnvオプションを指定したssh_configがあります。/etc/ssh/ssh_configを変更するrootでない場合、その動作を無効にするにはどうすればよいですか? SendEnvオプションが蓄積されているようで、リセットする方法がわかりません。

質問されないようにするには、テストマシンにロケールを渡さないようにする必要があります。これは、マシンのデフォルトであるロケールに依存するスクリプトやプログラムへの副作用を回避するためです。

30
akostadinov

あなたは 唯一ではない です。 ssh_config(5)に記載されているように、SendEnvを設定解除することはできません。

複数の環境変数が複数のSendEnvディレクティブに分散されている場合があります。

ただし、テストマシンにrootがいる場合は、AcceptEnvを変更して、クライアントから送信された変数を受け入れないようにすることもできます。

18
Ansgar Wiechers

SendEnvはオーバーライドできないため、これは~/.ssh/configでは実行できません。

エイリアスの使用は、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

オプションSetEnvがあります。送信する前にLANGを特定の値に強制できます。

また、manページはそれを言います

パターンの前に-を付けると、以前に設定したSendEnv変数名をクリアできます。

しかし、私はこれをうまく機能させることができませんでした。

1
burunduk3

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 /etc/ssh/ssh_configに準拠せずに、(デフォルトの)構成ファイルをコマンドラインで明示的に指定することで(~/.ssh/configは空でもかまいません)、次のように指定できます。

$ 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
1
Rockallite

Bashを使用している場合は、エイリアスssh = 'LANG =コマンドssh'を設定して、他のサーバーへのLANGの受け渡しを無効にすることができます。

0
Tharrrk

SSH経由でログインしている場合は、su - youruserを使用できます。これにより、ユーザーの環境が再初期化されます。

実際には、新しい環境で新しいセッションを初期化します。

0
Lambert