2
을 통해 실행 파일을 이눔 내 ~/.ssh/config
:자식 설정 원격 경로가 내가이를 사용하여 원격 컴퓨터에 SSH를 통해 연결 ssh를
Host myserver
User myusername
ProxyCommand ssh myserver2 exec nc myserver 22
하지만 원격 Git 저장소를 끌어하려고 할 때, 나는이 오류를 얻을 :
% git pull myserver:~/mygitrepository
zsh:1: command not found: git-upload-pack
fatal: The remote end hung up unexpectedly
문제는 내 git 실행 파일이 $ PATH에 정의 된 표준 경로에 없다는 것입니다. 원격 시스템에서 :
% ssh myserver "env | grep PATH"
PATH=/usr/local/bin:/bin:/usr/bin
SSH를 .zshrc 또는 .bashrc와의 원격 PATH 정의를 읽지 않습니다 :
% which git-upload-pack
/c5/shared/git/1.7.6/bin/git-upload-pack
및 로컬 컴퓨터에
. ssh를 통해 실행 파일을 git하기 위해 PATH를 어떻게 정의 할 수 있습니까?
ssh는 연결을 만들기 때문에 PATH 정의를 읽지 않습니다. 이것은 사용자 쉘이 아닙니다. 실제로 zsh을 비난하는 문제가 있습니다. (.zshrc를 읽지 않으면) 또는 .zshrc에 PATH 추가를 실제로 추가해야합니다. –
실제로 ssh는 사용자 구성 파일 (.zshrc)을 읽지 않습니다. zshrc 또는 .bashrc) ssh가 인수에서 명령과 함께 시작될 때. PATH 변수는 이미 내 .zshrc에 정의되어 있고 ssh를 통해 대화식 세션에 연결될 때 git가 올바르게 작동합니다. – bougui
그러면 PATH 정의를 해당 명령에 추가 할 수 있습니다. (또는 .zshrc를'source '하는 것) –