ssh 로그인은 .profile 또는 .bashrc를 올바르게 구문 분석하지 않으며 일반적으로 이상합니다.

ssh 로그인은 .profile 또는 .bashrc를 올바르게 구문 분석하지 않으며 일반적으로 이상합니다.
  • 첫째, PS1이 로드되지 않습니다. 그냥 나한테 메시지가 떠요$
  • 화살표 키는 예상된 작업을 수행하지 않고 다음과 같은 내용을 표시합니다.$ ^[[A

이로 인해 매우 사용할 수 없게 됩니다. 고려해야 할 사항은 다음과 같습니다.

  • 이것은 서버에 직접 로그인할 때가 아니라 ssh를 통해 로그인할 때만 발생합니다.
  • 사용자 중 한 명은 ssh를 사용해도 잘 작동합니다. 이는 OS 설치 중에 설정된 사용자입니다.우분투 서버 14.04).
  • su - otherUser잘 작동하는 사용자 내부로 들어가면 모든 것이 잘 작동합니다 .

.bashrc살펴보고 싶은 경우를 대비해 다음을 소개합니다 (잘 작동하는 사용자를 포함하여 모든 사용자에게 동일함).

함수 구문 분석_git_branch() {
  자식 분기 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}

빨간색 = "\[\033[0;31m\]"
노란색 = "\[\033[0;33m\]"
녹색 = "\[\033[0;32m\]"
NO_COLOR="\[\033[0m\]"
#PS1="[\u@\h \W]\$"
PS1="[\u@\h $YELLOW\W$NO_COLOR]$GREEN\$(parse_git_branch)$NO_COLOR\$ " 내보내기

사용자 로그인을 시도할 때 출력되는 로그입니다.일하다적절하게 ssh -vvv ubuntu@server:http://paste.ubuntu.com/15436267/

사용자 로그인을 시도할 때 출력되는 로그입니다.작동하지 않습니다적절하게 ssh -vvv adam@server:http://paste.ubuntu.com/15436301/

답변1

귀하가 설명하는 증상(아주 기본적인 프롬프트만 표시되고 화살표 키가 작동하지 않음)은 /bin/sh로그인 쉘과 일치하며 /bin/bash예상한 것과는 다릅니다. /bin/sh스크립트를 빠르게 실행하도록 설계된 작은 셸이지만 대화형 사용에는 적합하지 않습니다.

로그인 쉘이 무엇인지 확인하려면 다음을 실행하십시오.

getent passwd $USER

콜론으로 구분된 필드 목록이 표시되며, 로그인 쉘이 마지막 필드입니다.

로그인 쉘이 원하는 것이 아닌 경우 다음을 실행하십시오.chsh -s /bin/bash.

터미널에서 bash를 받는 이유는 아마도 구성 어딘가에서 SHELLbash에 대한 환경 변수를 설정했기 때문일 것입니다. 터미널 에뮬레이터는 일반적으로 표시된 프로그램을 실행하거나, 설정되지 않은 경우 SHELL로그인 셸로 대체됩니다.SHELL

관련 정보