SOCKS 프록시를 통한 SSH? (클라이언트 = OpenSSH OS X)


11

이 질문이 ServerFault 또는 SuperUser에서 가장 적합한 지 확실하지 않습니다. 논리적으로 생각하면 이것이 sysadmin 질문이라고 생각하므로 여기에 넣을 것입니다. 모드가 움직여야한다고 생각하면 잘못 추측 한 것에 대해 사과드립니다!

어쨌든-서버가 오프 사이트에 있고 HTTP 프록시 또는 SOCKS 4/5 프록시를 제외하고는 네트워크에 액세스 할 수없는 개인 IP에 붙어 있습니다. OS X를 실행하고 있으며 터미널에서 ssh 명령을 사용하여 두 프록시 중 하나를 통해 원격 서버로 나가기를 원합니다. 원격 서버의 SSH 포트는 표준이 아니지만 많은 차이가있을 것입니다.

답변:


5

나는 이것이 고대 게시물이라는 것을 알고 있지만이 답변이 여전히 도움이 될 것이라고 생각합니다.

NetCat (nc)를 사용하는 SOCKS 프록시를 통해이를 쉽게 수행 할 수 있습니다. ~ / .ssh / config에서 두 줄을 추가하면됩니다. 한 줄은 프록시하려는 호스트를 지정하고 한 줄은 nc를 통해 연결하는 방법을 알려줍니다. 이렇게 :

~ / .ssh / config : (OSX에서 테스트되었으며 Linux에서도 작동 함)

Host 10.*
    ProxyCommand nc -X 5 -x PROXY_HOST:1080 %h %p

"PROXY_HOST"를 올바른 설정으로 교체하십시오.

이로 인해 ssh는 대상 호스트에 대한 TCP 연결을 직접 여는 대신 (이 경우 "10"으로 시작하는 항목-IP 또는 호스트 이름 일 수 있음) 지정된 옵션과 함께 "nc"명령을 실행하여 실제로 TCP 연결을 설정하면 SSH가 나머지 부분을 수행합니다. 매우 편리합니다.

"5"는 SOCKS 버전이고 "1080"은 프록시 포트이고 "% h"SSH는 명령 줄에 입력 한 호스트로, "% p"SSH는 명령 줄의 포트 (또는 기본 포트)로 바뀝니다. 22).


7

그렇습니다. 한 가지 예는 이 사이트 를 참조하십시오 .

기본적으로 로컬 ~/.ssh/config파일 을 사용 하거나 /etc/ssh/ssh_config시스템 전체에 ProxyCommand필요한 경우 프록시를 통과 해야하는 호스트에 대한 지시문 을 지정합니다 .

nc해당 사이트에서 언급 한 소프트웨어 대신 (OS X와 ​​함께 제공)을 사용할 수도 있습니다 .

자세한 내용은 ssh_config(5)nc(1)매뉴얼 페이지를 참조하십시오 .


1
불행히도 연결하는 페이지가 오래되어 패치 된 버전의 바이너리에 대한 링크가 작동하지 않습니다 (404 오류).
Bart B

1
얼마나 부끄러운 지-OS X 10.7 Lion에서 여전히 컴파일되고 여전히 내 블로그에서 작동하는 작동중인 프록시 명령에 대한 링크를 찾았습니다! 내 방어에서 게시물은 6 살이지만 여전히 있습니다. 작업 지침 : bartbusschots.ie/blog/?p=184
Bart B

2
@BartB "일주일 전에 쓴 것은 다른 사람이 쓴 것일 수도 있습니다." -그것은 프로그래밍 공리이지만 시스템 관리자와 블로거들에게도 적용됩니다.
voretaq7

3

조금 늦었지만 SSH 명령 자체에서 다른 답변을 -o 플래그와 함께 사용할 수 있습니다. 프록시를 사용해야 할 수도 있고 필요하지 않을 수도 있으므로 (내 사무실에 따라) ssh 구성 파일을 실제로 편집하고 싶지 않기 때문에이 기능이 유용했습니다.

ssh -o "ProxyCommand nc -X 5 -x myproxy:myproxyport %h %p" myuser@cantaccessthiswithoutproxy.com
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.