kex_exchange_identification 오류: 역방향 프록시 뒤의 Git

kex_exchange_identification 오류: 역방향 프록시 뒤의 Git

어디로 가야할지 잘 모르겠습니다. 나는 붙어있다. 로컬 가상 머신(호스트 이름 Git이라고 함)에서 실행 중인 git 저장소가 있고 다음을 통해 로컬로 액세스할 수 있습니다.[이메일 보호됨], 라우터가 모든 포트를 Git으로 전달하도록 할 수 있고 git@을 통해 git에 액세스할 수 있지만 도메인([이메일 보호됨]) 그리고 제가 무엇을 해야 할지 잘 모르겠습니다.

기본적으로 git 저장소는 가상 머신의 Docker 컨테이너에서 실행됩니다. 컨테이너가 호스트의 포트 22에 바인딩되고, 호스트 SSH가 포트 4242에 바인딩되고, 홈 라우터가 외부 포트 8022에서 포트 22의 Git으로 트래픽을 전달하도록 포트를 변경했습니다. 다시 말하지만 지금까지는 너무 좋았습니다.

그런 다음 AWS EC2 인스턴스에 호스팅된 에이전트로 이동하여 호스트 VM이 포트 4242에서 SSH를 실행하도록 포트를 다시 조정했습니다. 머신은 도메인을 기반으로 HTTP/HTTPS 트래픽을 전달하기 위해 간단한 HAProxy 설정을 실행하고 있습니다. HA 프록시를 통해 SSH 전달을 설정해 보았지만 이것이 분명히 불가능하다는 것을 알았습니다. 어쩌면 내 구성이 내가 여기서 해결하려는 문제를 다른 사람이 시각화하는 데 도움이 될 수도 있습니다...

global
        log 127.0.0.1 local0 notice
        maxconn 2000
        user haproxy
        group haproxy

defaults
        log     global
        mode    http
        option  ssl-hello-chk
        option  dontlognull
        retries 3
        option redispatch
        timeout connect 5000
        timeout client  50000
        timeout server  50000
        errorfile 400 /etc/haproxy/errors/400.http
        errorfile 403 /etc/haproxy/errors/403.http
        errorfile 408 /etc/haproxy/errors/408.http
        errorfile 500 /etc/haproxy/errors/500.http
        errorfile 502 /etc/haproxy/errors/502.http
        errorfile 503 /etc/haproxy/errors/503.http
        errorfile 504 /etc/haproxy/errors/504.http

frontend ssh
        mode tcp
        bind *:22 ssl crt /etc/ssl/mydomain.io/mydomain.io.pem
        default_backend gitlab-ssh22

frontend mydomain.io-gitlab
        bind *:80

        acl docker-acl hdr_end(host) -i docker.mydomain.io
        acl gitlab-acl hdr_end(host) -i gitlab.mydomain.io
        acl test-acl hdr_end(host) -i test.mydomain.io

        use_backend gitlab-bk80 if docker-acl
        use_backend gitlab-bk80 if gitlab-acl
        use_backend test-bk80 if test-acl

        default_backend none-bk

frontend mydomain.io-gitlab-https
        bind *:443 ssl alpn h2 strict-sni crt /etc/ssl/mydomain.io/mydomain.io.pem
        stats uri /haproxy?stats

        acl docker-acl hdr_end(host) -i docker.mydomain.io
        acl gitlab-acl hdr_end(host) -i gitlab.mydomain.io

        use_backend gitlab-bk443 if docker-acl
        use_backend gitlab-bk443 if gitlab-acl

        default_backend none-bk

#       acl letsencrypt-acl path_beg /.well-known/acme-challenge/
#       use_backend letsencrypt if letsencrypt-acl

frontend mydomain.io-docker
        bind *:5000 ssl alpn h2 strict-sni crt /etc/ssl/mydomain.io/mydomain.io.pem
        default_backend docker-bk5000


backend gitlab-ssh22
        mode tcp
        server gitlab22 24.x.x.x:8022 check

backend gitlab-bk80
        server gitlab80 24.x.x.x:8080

backend gitlab-bk443
        server gitlab443 24.x.x.x:8443 ssl verify none maxconn 1000

backend docker-bk5000
        server docker5000 24.x.x.x:5000 ssl verify none maxconn 1000

backend test-bk80
        server test 24.x.x.x:5001 maxconn 1000

체크아웃, 복제, 푸시 등 무엇이든 시도할 때마다 오류가 반환됩니다.

>git push -u origin master

kex_exchange_identification: Connection closed by remote host

Connection closed by 23.x.x.x port 22

fatal: Could not read from remote repository.

관련 정보