이 질문이 ServerFault 또는 SuperUser에서 가장 적합한 지 확실하지 않습니다. 논리적으로 생각하면 이것이 sysadmin 질문이라고 생각하므로 여기에 넣을 것입니다. 모드가 움직여야한다고 생각하면 잘못 추측 한 것에 대해 사과드립니다!
어쨌든-서버가 오프 사이트에 있고 HTTP 프록시 또는 SOCKS 4/5 프록시를 제외하고는 네트워크에 액세스 할 수없는 개인 IP에 붙어 있습니다. OS X를 실행하고 있으며 터미널에서 ssh 명령을 사용하여 두 프록시 중 하나를 통해 원격 서버로 나가기를 원합니다. 원격 서버의 SSH 포트는 표준이 아니지만 많은 차이가있을 것입니다.
답변
나는 이것이 고대 게시물이라는 것을 알고 있지만이 답변이 여전히 도움이 될 것이라고 생각합니다.
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).
답변
그렇습니다. 한 가지 예는 이 사이트 를 참조하십시오 .
기본적으로 로컬 ~/.ssh/config
파일 을 사용 하거나 /etc/ssh/ssh_config
시스템 전체에 ProxyCommand
필요한 경우 프록시를 통과 해야하는 호스트에 대한 지시문 을 지정합니다 .
nc
해당 사이트에서 언급 한 소프트웨어 대신 (OS X와 함께 제공)을 사용할 수도 있습니다 .
자세한 내용은 ssh_config(5)
및 nc(1)
매뉴얼 페이지를 참조하십시오 .
답변
조금 늦었지만 SSH 명령 자체에서 다른 답변을 -o 플래그와 함께 사용할 수 있습니다. 프록시를 사용해야 할 수도 있고 필요하지 않을 수도 있으므로 (내 사무실에 따라) ssh 구성 파일을 실제로 편집하고 싶지 않기 때문에이 기능이 유용했습니다.
ssh -o "ProxyCommand nc -X 5 -x myproxy:myproxyport %h %p" myuser@cantaccessthiswithoutproxy.com