Ncat이 Windows OpenSSH에서 이미 사용 가능하다면 SOCKS5 프록시를 통해 연결을 제공할 수 있습니다. 해당 OpenSSH 클라이언트가 사용하는 SSH 구성에 호스트 항목을 추가하세요:

Host target-via-socks
    HostName ssh.example
    User user
    ProxyCommand ncat.exe --proxy-type socks5 --proxy proxy.example:1080 %h %p

두 호스트 이름과 계정을 바꾼 다음 ssh target-via-socks로 연결하세요. 이 예제는 ncat.exe가 도우미의 실행 파일 검색 경로에 있다고 가정합니다. 그렇지 않으면 올바르게 인용한 실행 파일의 전체 경로를 사용하세요. 특히 디렉터리에 공백이 있을 때 중요합니다.

프록시 끝점은 --proxy 뒤에 옵니다. OpenSSH는 %h와 %p를 최종 SSH 호스트 이름과 포트로 확장합니다. Ncat이 SOCKS 연결을 협상하고 결과 바이트 스트림을 표준 입력과 출력으로 전달하며, OpenSSH는 그 스트림 위에서 SSH 핸드셰이크를 계속합니다.

명시적인 --proxy-type socks5가 중요합니다. 이 옵션이 없으면 Ncat은 제공된 포트가 1080이더라도 기본적으로 HTTP 프록시를 사용합니다. SOCKS 리스너는 HTTP CONNECT 요청이 SOCKS를 의도했다고 추론할 수 없습니다.

이 예제는 인증이 없는 SOCKS 끝점을 가정합니다. 해당 경로가 허용된 공개 SSH 대상에 대해서만 SOCKS5 프록시 목록에서 후보를 선택하고 실제 호스트와 포트에 대한 접근을 확인하세요. 프록시 인증이 필요하면 이후의 SSH 로그인과는 별개입니다. SSH 대상의 호스트 키 검증을 유지하세요. 도우미를 통해 도달해도 OpenSSH가 인증해야 하는 신원은 바뀌지 않습니다.

관련 글