SSHゲートウェイを設定できません

SSHゲートウェイを設定できません

SSHゲートウェイを設定しようとしています。物理ホスト(H)と、その上にいくつかのVMがあります。ホストはVMの1つ(A)にSSH接続し、そこから他のVM(Bと呼ぶ)にSSH接続できます。Hにこれがあります.ssh/config

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

そして、ユーザー foo が A と B に存在することを確認します。

関連情報