SSH 게이트웨이를 설정하려고 합니다. 물리적 호스트(H)와 다수의 VM이 있습니다. 호스트는 VM 중 하나(A)로 SSH를 통해 연결한 다음 VM에서 다른 VM으로 SSH를 통해 연결할 수 있습니다(B라고 부르겠습니다). .ssh/config
H에 이게 있어요
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.log
A는 이렇게 말합니다.
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.allow
A에
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가 존재하는지 확인하십시오.