非対話型SSHコマンドのBASH_ENVインポート

非対話型SSHコマンドのBASH_ENVインポート

$BASH_ENV非対話型SSHコマンドのvarソースを取得したいです。

私のBASH_ENVが表示されます。

ssh server.example.com env | grep BASH
BASH_ENV=/tmp/set_bash_env_profile

単純なsshログインを実行すると、env varenv | wc -lによって85が表示されますが、次の場合に発生します。$BASH_ENV

ssh server.example.com env | wc -l
17

私は今わずか17歳です...

ForceCommand説明したようにsshd_configで試しました。ここしかし、私の場合はSSH_ORIGINAL_COMMANDまだ設定されていません。

答え1

おそらく、ログインシェルではなくインタラクティブにロードされるように.BashをBASH_ENV設定しています。.bashrc.bashrcまたはrshdまたは(多くのディストリビューションでは、しかしこれはコンパイル時オプションです)sshdによって呼び出されるログインシェルの場合。遅すぎるこれバッシュの例。に直接コマンドを入力してください~/.bashrc

# .bashrc
if [[ $- = *i* ]]; then
  # Commands for interactive use: prompt, aliases, key bindings, etc.
  # Don't set environment variables here, that goes in .profile.
else
  # Commands executed only on remote logins.
  # You can set environment variables here. Do not output anything.
fi

環境変数のみを設定する必要がある場合は~/.pam_environment使用でき、あらゆる種類のログインに使用されます。バラより環境変数を設定するための最良の distro/shell 独立した方法は何ですか?

SSHを介して非対話式にログインした場合のコマンドの実行方法については、次を参照してください。SSHによるsh起動ファイル

関連情報