비대화형 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 var env | 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 시작 파일

관련 정보