머신 A --RHEL 7 및 업데이트됨.
머신 B - RHEL 6 및 업데이트됨.
A(RHEL 7)에서 이 작업을 수행하면
SSH B
당연히 그래야 하는데 .bashrc가 아직 실행되고 있지 않습니다. 이것은 나에게 새로운 행동입니다. 나생각하다.bashrc
머신 B(RHEL 6)에서 실행하고 싶습니다 . /etc/ssh/sshd_config
와 을 비교 했는데 /etc/ssh/ssh_config
서로 다른데 이것이 왜 중요한지 이해가 되지 않습니다.
ssh_config
공백과 주석만 다릅니다.
예, 내용이 보입니다. 하지만 그럼에도 불구하고 그 안에 있는 것보다 작거나 커져서 diff 출력이 망가집니다. 내가 걱정해야 할 것이 있습니까? 공백, 주석, 환경 변수( AcceptEnv
)를 수정했는데 이것이 바로 차이점입니다.
6면
Protocol 2
7면
HostKey /etc/ssh/ssh_host_ecdsa_key
AuthorizedKeysFile .ssh/authorized_keys
UsePrivilegeSeparation sandbox
.bashrc
그렇다면 왜 내 것이 작동하지 않는지 알아 보려면 어디로 가야합니까 ? 내 꺼야 .profile
, 다시 말해봐:
alias lo='exit'
alias l='ls -CF'
alias ..='cd ..'
그리고 내 .bashrc
:
PRINTER=its1
export PRINTER
DISPLAY=jgs:0.0
export DISPLAY
PATH=/usr/bin:/usr/sbin:/bin:/sbin:/opt/bin:/home/gl/bin:.
export PATH
PROXY=whiteproxy.arlut.utexas.edu:3128
export PROXY
cd /home/gl
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
/etc/bashrc
주식이에요.
답변1
~/.bashrc 파일이 항상 읽혀지는 것은 아닙니다: 참조배시 시작 파일설명서에.
~/.bash_profile(또는 ~/.profile)이 .bashrc 파일을 호출합니까? 이는 일반적으로 .profile 파일에 나타납니다.
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
답변2
문서가 혼란스러울 수도 있지만 Bash의 표준 동작은 대화형 로그인 셸에서 "프로필"(.bash_profile, .bash_login, .profile 중 순서대로 먼저 발견되는 것)을 얻은 다음 비로그인 쉘에서 .bashrc를 얻는 것입니다. -로그인 쉘.
sshd는 일반적으로 로그인 쉘을 생성하는데, 여기서 열리는 X11 터미널 창은 일반적으로 비로그인 쉘입니다.
따라서 시스템에 SSH로 접속할 때 .bashrc를 읽을 것으로 예상해서는 안 됩니다.
즉, 나는 일반적으로 사용자가 "프로필"에 이와 같은 줄을 추가하는 것을 권장합니다.
[[ -r ~/.bashrc ]] && source ~/.bashrc
마지막으로 Bush는 /etc/bashrc를 직접 읽지 않으며 bash 매뉴얼 페이지에서도 이에 대한 언급을 찾을 수 없습니다. 이는 RedHat이 추가하고 ~/.bashrc 파일이 이를 선택하기를 기대하는 파일입니다. 계정이 생성될 때 홈 디렉터리에 있어야 하는 기본 ~/.bashrc가 이 작업을 수행해야 합니다. 그렇지 않은 경우 /etc/skel 디렉토리에서 예제를 찾아야 합니다.
답변3
마지막으로, .bashrc
나 .profile
에게 이것은 순환 참조 및 기타 혼란을 피하기 위해 .profile
실행될 때를 제외하고는 비어 있어야 함 을 의미합니다..bashrc
매뉴얼 페이지에서 읽은 대로 로 sshd
호출되어야 .bashrc
하지만, 글쎄요, 해결 방법이 있습니다.