無法設定 ssh 網關

無法設定 ssh 網關

我正在嘗試設定 ssh 網關。我有一台實體主機 (H) 及其上的許多虛擬機器。主機可以透過 ssh 連接到其中一台虛擬機器 (A),然後透過該虛擬機器透過 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.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_configH

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 上。

相關內容