$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起動ファイル