$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 시작 파일