2012-03-13 4 views
2

나는 내 컴퓨터에서 ssh을 내 컴퓨터 X에서 Y으로 보내야하는 프로젝트를 수행 중이며 그 곳에서 git pull을 수행 한 다음 컴파일 된 코드를 검색하므로 어디 있는지 볼 수 있습니다. 에서.git과 함께 "프록시"사용

X에 직접 git을 사용하고 싶습니다. Y이 속한 로컬 네트워크에서 코드를 가져 오기 때문에 연결할 수 없습니다. 어떻게 든 프록시로 X을 사용할 수있는 방법이 있나요, 그래서 내 컴퓨터에 자식을 직접 사용할 수 있고 혼전을 많이 절약 할 수 있습니까?

당신이 Y에서 실행 SSHD가있는 경우

+0

참고 :이 스택 오버플로 내 10000 번째 upvote했습니다. – VonC

+0

나는 영광이다 ;-) –

답변

2

(나는 방법에 의해 리눅스 배포판을 사용하고 있습니다) (당신이 Yssh 수 및 작업을 수행하기 때문에), 당신은 할 수 있습니다

그 방법에 요 u는 X에 직접 Y 복제본을 가져 와서 수정을하고 원하는 경우 Y repo (origin)로 되돌릴 수 있습니다.

+0

참고 : 힘내, ssh 프로토콜 : http://progit.org/book/ch4-1.html#the_ssh_protocol – VonC

1

ssh의 프록시 기능을 사용할 수 있습니다. 예를 들어, 내가 (이름이 유죄 :-) 보호를 위해 가려)이 있습니다

# tunneling 
Host *.secure2.com 
    ProxyCommand ssh secure1.local.com 'conn %h %p' 

는 여기서 "코네티컷"나는 그 대상 호스트/포트 쌍에 연결하지가 명령입니다. 가지고있는 경우 nc 명령을 사용할 수 있습니다. ssh_config 매뉴얼 페이지 (일반적으로 섹션 5 참조)를 참조하십시오.

1

나는 것 기계 Y 단지 앞으로 로컬 포트는 기계 X로 ssh를 :

ssh -L2022:Y:22 [email protected] 

이제 SSH 세션은 다른 지역의 쉘을 사용하고 기계 Y에 대해 SSH 명령을 실행할 수 있습니다 존재하는 동안 :

git clone ssh://[email protected]:2022/repos/Yrepo repo_from_Y 

물론 Y에서 X로 복제/가져온 경우 X를 로컬 컴퓨터로 복제/가져 와서 X를 프록시 중간으로 만들 수 있습니다. X의 복제본을 Y의 맨손 미러로 만들면 cron 작업을 추가하여 최신 상태로 유지할 수 있습니다. 로컬 포워딩 포트를 사용하는 것은 정말 간단하고 매우 유연합니다.

관련 문제