호스트에 SSH로 연결할 때 셸 구성 정보를 푸시하는 방법이 있습니까?

호스트에 SSH로 연결할 때 셸 구성 정보를 푸시하는 방법이 있습니까?

나는 그놈 터미널(또는 xterms!)의 마지막 종료 코드를 녹색/빨간색으로 묻는 메시지를 설정하는 방법을 알고 있습니다.

vi .bashrc

export PROMPT_COMMAND='PS1="`
if [[ \$? = "0" ]];
then echo "\\[\\033[0;32m\\]";
else echo "\\[\\033[0;31m\\]";
fi`[\u@\h \w]\[\e[m\] "'

export PS1

사진 속에:

여기에 이미지 설명을 입력하세요.

하지만 원격 서버에 로그인하면 이러한 색상 설정이 작동하지 않습니다!

원격 터미널에서 작동하도록 어떻게 설정합니까? 안타깝게도 위 줄을 원격 서버에 추가할 수 없습니다 .bashrc.

답변1

원격 셸에 표시되는 프롬프트를 변경하려고 합니다. 물론 이를 위해서는 원격 셸의 구성 파일인 .bashrc.

파일을 변경하고 싶지 않고 실제로 해당 공유 계정을 사용해야 하고(공유 계정에 대한 필수 불만 사항 삽입) SSH를 통해 로그인하는 경우 (ab) 다음을 command=사용할 수 있습니다.~/.ssh/authorized_keys문서. 명령 옵션이 포함된 키 입력은 지정된 명령 실행에만 적용됩니다. 그러나 Authorized_keys 파일의 명령 런타임 환경 변수는 SSH_ORIGINAL_COMMAND사용자 지정 명령으로 설정됩니다(대화형 세션의 경우 비어 있음). 따라서 다음과 같은 것을 사용할 수 있습니다 ~/.ssh/authorized_keys.

command="HOME=$HOME/.HOME.lance;
         if [ -n \"$SSH_ORIGINAL_COMMAND\" ]; then
           eval \"$SSH_ORIGINAL_COMMAND\";
         else exec \"$SHELL\"; fi" ssh-rsa AAAA…== [email protected]

쉽게 읽을 수 있도록 위에 줄 바꿈을 추가했지만 실제로는 모두 authorized_keys파일에서 한 줄에 있어야 합니다.

그런 다음 즐겨찾는 구성 파일을 해당 .HOME.lance디렉터리에 저장하세요.

가끔 사용하려면 명시적으로 구성 파일을 얻거나 쉘 명령을 실행할 수 있습니다. -t대화형 명령을 실행하려면 터미널을 갖는 옵션을 전달하십시오.

ssh shared-account@server "LS_COLORS='$LS_COLORS' ls --color"
ssh -t shared-account@server '. ~/.profile.drew; exec zsh'

원격 컴퓨터의 파일을 편집하거나 복사하려는 경우 네트워크 파일 시스템을 사용할 수 있습니다.SSHFS(UNIX 클라이언트의 경우) 또는도보 여행가(Emacs의 경우) 로컬 환경에서 편안하게 작업할 수 있습니다.

답변2

원격 시스템에 로그인하면 새 쉘이 생성됩니다. 특히 원격 시스템의 셸입니다. 다른 컴퓨터에서 선호하는 셸 기본 설정을 유지하려면 해당 컴퓨터에서도 기본 설정을 지정해야 합니다. 이는 원격 사이트의 .bashrc 파일에 명령 셸 프롬프트를 설정해야 함을 의미합니다. 이렇게 디자인되었습니다.

참고로, 원격 컴퓨터에 로그인하면 원격 컴퓨터는 귀하의 터미널이 귀하의 터미널보다 성능이 떨어진다고 생각할 수 있습니다. PS1이 올바르게 설정되어 있으면 새 컴퓨터를 설정할 때 TERM 변수를 설정해 보십시오. 원격 시스템은 일반적으로 모든 원격 로그인에 대해 매우 어리석은 터미널을 가정하지만 실제로는 괜찮은 터미널을 지원하며 합리적인 설정을 사용하도록 가짜로 만들 수 있지만 이 환경 변수를 xterm-color와 같은 가능한 것으로 강제할 수 있습니다.

관련 정보