ProxyCommand를 사용하는 SSH는 연결되지 않습니다.

ProxyCommand를 사용하는 SSH는 연결되지 않습니다.

SSH 연결을 시도 중입니다.미트프로시다음 SSH 구성 파일을 사용하십시오.

Host test
        HostName 10.0.0.246
        User testssh
        ProxyCommand socat - PROXY:10.0.0.211:%h:%p,proxyport=9090

그러면 다음과 같은 자세한 출력이 생성되고 마지막 줄 이후에 연결이 중단됩니다.

OpenSSH_8.9p1 Ubuntu-3ubuntu0.1, OpenSSL 3.0.2 15 Mar 2022
debug1: Reading configuration data /home/ubuntu/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: include /etc/ssh/ssh_config.d/*.conf matched no files
debug1: /etc/ssh/ssh_config line 21: Applying options for *
debug1: Executing proxy command: exec socat - PROXY:10.0.0.211:10.0.0.246:22,proxyport=9090
debug1: identity file /home/ubuntu/.ssh/id_rsa type 0
debug1: identity file /home/ubuntu/.ssh/id_rsa-cert type -1
debug1: identity file /home/ubuntu/.ssh/id_ecdsa type -1
debug1: identity file /home/ubuntu/.ssh/id_ecdsa-cert type -1
debug1: identity file /home/ubuntu/.ssh/id_ecdsa_sk type -1
debug1: identity file /home/ubuntu/.ssh/id_ecdsa_sk-cert type -1
debug1: identity file /home/ubuntu/.ssh/id_ed25519 type -1
debug1: identity file /home/ubuntu/.ssh/id_ed25519-cert type -1
debug1: identity file /home/ubuntu/.ssh/id_ed25519_sk type -1
debug1: identity file /home/ubuntu/.ssh/id_ed25519_sk-cert type -1
debug1: identity file /home/ubuntu/.ssh/id_xmss type -1
debug1: identity file /home/ubuntu/.ssh/id_xmss-cert type -1
debug1: identity file /home/ubuntu/.ssh/id_dsa type -1
debug1: identity file /home/ubuntu/.ssh/id_dsa-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.1

콘솔에 어떤 연결도 표시되지 않습니다 mitmproxy. 그러나 실행만 하면 socat - PROXY:10.0.0.211:%h:%p,proxyport=9090연결이 실제로 설정되고 에이전트 콘솔에서 이를 볼 수 있습니다.

$ socat - PROXY:10.0.0.211:10.0.0.246:22,proxyport=9090
SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.3

나는 또한 사용해 보았지만 corkscrewnc다 동일한 동작을 가지고 있습니다. SSH는 중단되지만 명령을 직접 호출하면 연결이 설정됩니다.

SSH에서 더 이상 로그가 없으면 연결이 영원히 중단되는 것 같습니다. 추가 디버깅을 위해 무엇을 시도할 수 있나요?

편집: 설정을 제거하면 컴퓨터가 문제 없이 직접 연결할 수 있습니다 ProxyCommand.

편집: 다음을 기반으로 함 man ssh_config:

이 지시문은 nc(1) 및 해당 프록시 지원과 함께 유용합니다. 예를 들어 다음 명령은 192.0.2.0의 HTTP 프록시를 통해 연결됩니다.

ProxyCommand /usr/bin/nc -X 연결 -x 192.0.2.0:8080 %h %p

이전에 언급했듯이 이 방법과 그 이상을 시도했지만 아무런 차이가 없습니다.

Host test
        HostName 10.0.0.246
        User testssh
        #ProxyCommand corkscrew 10.0.0.211 9090 %h %p
        #ProxyCommand socat - PROXY:10.0.0.211:%h:%p,proxyport=9090
        ProxyCommand /usr/bin/nc -X connect -x 127.0.0.1:8080 %h %p

답변1

이것은 SSH 터널을 처리하는 방법을 모르는 프록시 서버 자체의 경우인 것 같습니다. 브로커의 로그에서 오류가 발생하여 연결의 원격 부분이 종료되었지만 클라이언트는 열려 있고 정지된 상태로 남아 있음을 확인할 수 있었습니다. 이는 SSH의 자세한 내용이 답변을 제공하지 않는 이유를 설명합니다.

관련 정보