SSH 게이트웨이를 설정할 수 없습니다

SSH 게이트웨이를 설정할 수 없습니다

SSH 게이트웨이를 설정하려고 합니다. 물리적 호스트(H)와 다수의 VM이 있습니다. 호스트는 VM 중 하나(A)로 SSH를 통해 연결한 다음 VM에서 다른 VM으로 SSH를 통해 연결할 수 있습니다(B라고 부르겠습니다). .ssh/configH에 이게 있어요

Host B
  User foo
  ProxyCommand ssh foo@A nc %h %p

이제 작업을 수행하면 ssh -vvv -l foo B다음 H오류가 표시됩니다.ssh_exchange_identification: Connection closed by remote host

cat /var/log/auth.logA는 이렇게 말합니다.

Jun  7 18:54:00 ubuntu sshd[846]: Received disconnect from 192.168.129.1: 11: disconnected by user
Jun  7 18:54:00 ubuntu sshd[834]: pam_unix(sshd:session): session closed for user foo
Jun  7 18:54:11 ubuntu sudo: foo : TTY=pts/6 ; PWD=/home/foo ; USER=root ; COMMAND=/usr/bin/tail /var/log/auth.log
Jun  7 18:54:11 ubuntu sudo: pam_unix(sudo:session): session opened for user root by foo(uid=30000)

/etc/hosts.allowA에

sshd: ALL
ssh: 0.0.0.0/0.0.0.0

H는 A가 연결을 끊었다고 말하고 A는 H가 연결을 끊었다고 말하는 것 같습니다!

/etc/ssh/ssh_config~에H

Host *
    SendEnv LANG LC_*
    HashKnownHosts yes
    GSSAPIAuthentication yes
    GSSAPIDelegateCredentials no

여기서 또 무엇이 잘못될 수 있나요?

답변1

B가 단일 호스트가 아닌 패턴인 경우 '호스트 B'에 A가 포함되지 않도록 할 수 있습니다. 나는 패턴에서 A를 명시적으로 제외해야 했습니다.

Host *.example.com !gateway.example.com
  ProxyCommand ssh -q -W %h:%p [email protected]

답변2

H 호스트에서 다음 구성을 시도해 보십시오.

Host B
    ProxyCommand ssh -q -W %h:%p A

그것은 나를 위해 일하고 있습니다. 필요한 경우 사용자 foo를 추가하세요.

Host B
    User foo
    ProxyCommand ssh -q -W %h:%p foo@A

그리고 A와 B에 사용자 foo가 존재하는지 확인하십시오.

관련 정보