SSH를 통해 원격 셸에 들어가서 "source" 명령을 실행하고 원격 셸에 머물러 있습니다.

SSH를 통해 원격 셸에 들어가서 "source" 명령을 실행하고 원격 셸에 머물러 있습니다.

s다음과 같이 가상 환경을 활성화하는 원격 서버에서 호출되는 스크립트가 있습니다.

source venv/bin/activate

SSH를 통해 서버에 연결되면 다음을 통해 환경을 활성화할 수 있습니다.

. s

다음과 같이 SSH를 통해 서버에 연결합니다.

ssh -t user@host "cd /path/to/dir ; /bin/bash"

작업 디렉터리를 변경하는 것 외에도 /path/to/dir서버에 로그인할 때마다 즉시 환경을 활성화할 수 있으면 좋을 것 같습니다. 그러나 . sSSH 명령을 어디에 입력하든 -cfor 사용 여부에 관계없이 /bin/bash세션은 항상 즉시 종료됩니다.

답변1

새로운 소스 파일을 사용하세요./home/user/.rcforssh

 #rc for ssh
 . /home/user/.bashrc
 . /home/user/venv/bin/activate  #or whichever location

그리고 로그인

ssh -t user@host "cd /path/to/dir ; /bin/bash --rcfile /home/user/.rcforssh"

참고 사항: sourcePOSIX는 아니지만 ..


OP의 요구 사항을 지정하려면 다음 토론을 업데이트하세요.

rcforssh수정된 소스 파일을 동적으로 생성하고 삭제하려면 다음을 사용할 수 있습니다.

ssh -t user@host "cd /path/to/dir ; echo '. ~/.bashrc ; . s ; rm rcforssh' > rcforssh ; /bin/bash --rcfile rcforssh"

즉, 명령을 사용하여 소스 파일을 생성 echo하고 해당 파일에 추가 및 삭제합니다.

관련 정보