ssh-tunnel을 통해 (svn 저장소의) https 트래픽을 다시 라우팅 할 수 있습니까?
문제는 다음과 같은 청취를 위해 하나의 터널을 만들면 https를 사용하는 서비스가 작동하지 않는다는 것입니다.
ssh -L 12345:server.com:443 localhost
다른 일을해야합니까? 목표는 https://PROJECT.googlecode.com/svn/ 을 터널링하는 것입니다. 여기서 PROJECT는 프로젝트 이름입니다.
ssh-tunnel을 통해 (svn 저장소의) https 트래픽을 다시 라우팅 할 수 있습니까?
문제는 다음과 같은 청취를 위해 하나의 터널을 만들면 https를 사용하는 서비스가 작동하지 않는다는 것입니다.
ssh -L 12345:server.com:443 localhost
다른 일을해야합니까? 목표는 https://PROJECT.googlecode.com/svn/ 을 터널링하는 것입니다. 여기서 PROJECT는 프로젝트 이름입니다.
답변:
SSH 포트 전달을 통해 HTTPS 연결을 재 지정할 수 있지만 호스트 이름이 일치하지 않는 경우 SSL / TLS 인증서 유효성 검증이 실패합니다.
https : // localhost : 12345에 연결하고 있지만 서버 인증서에 server.com이라는 이름이 포함되어 있습니다.
HTTPS 연결을 직접 전달하는 대신 SSH 연결을 여는 원격 컴퓨터에서 HTTP / sock 프록시를 실행합니다. 그런 다음 포트 전달을 통해이 프록시를 사용하도록 터널링하려는 프로그램을 설정하십시오. 이것은 깨끗한 해결책이 될 것입니다.
업데이트 : SVN은 HTTP 프록시를 사용할 수 있지만 SOCKS 프록시는 사용할 수없는 것 같습니다. 그렇게하려면 로컬 시스템에 추가 "양말"이 필요합니다. Serverfault.com : ssh tunnel을 사용하여 서브 버전 용 프록시를 설정하는 방법을 참조하십시오 .
SSH 터널을 사용하여 원격 서버에 액세스하는 동안 인증서 DNS 불일치 문제를 해결할 수 있도록 다음을 수행했습니다.
(L443 : <remote.server.com>:443 )C:\Windows\System32\drivers\etc\hosts파일을 업데이트 하여 다음과 같은 항목을 추가하십시오.127.0.0.1 <remote.server.com><remote.server.com>시스템 프록시 에서 호스트 를 무시하십시오.https://<remote.server.com>