SSH 在收到 SSH2_MSG_SERVICE_ACCEPT 时持续挂起

SSH 在收到 SSH2_MSG_SERVICE_ACCEPT 时持续挂起

我在使用 SSH 时遇到问题。我无法连接任何东西;每个连接都无限期地挂起在 SSH2_MSG_SERVICE_ACCEPT RECEIVED 处。我使用的是 OSX 10.6.8。

我认为这是我的 SSH 配置的问题,但我搞不清楚。我在 /usr/bin/ 中安装了 os x 附带的原始 openssh,在 /usr/local/bin/ 中安装了 brewed 安装。我使用的是 homebrew 版本 - 这里可能发生了冲突吗?

有什么解决方案或可能导致此问题的原因吗?这是我的 ssh_config:

 Host *
#   ForwardAgent no
#   ForwardX11 no
#   RhostsRSAAuthentication no
#   RSAAuthentication yes
#   PasswordAuthentication yes
#   HostbasedAuthentication no
#   GSSAPIAuthentication no
#   GSSAPIDelegateCredentials no
#   GSSAPIKeyExchange no
#   GSSAPITrustDNS no
#   BatchMode no
#   CheckHostIP yes
#   AddressFamily any
#   ConnectTimeout 0
#   StrictHostKeyChecking ask
   IdentityFile ~/.ssh/identity
   IdentityFile ~/.ssh/id_rsa
   IdentityFile ~/.ssh/id_dsa
   Port 22
#   Protocol 2,1
   Cipher 3des
   Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
   MACs hmac-md5,hmac-sha1,[email protected],hmac-ripemd160
#   EscapeChar ~
#   Tunnel no
#   TunnelDevice any:any
#   PermitLocalCommand no
#   VisualHostKey no

答案1

您所连接的主机(运行服务器的主机sshd,而不是您运行客户端的主机)可能在这里挂起,因为它尝试基于客户端计算机的 IP 地址对其主机名ssh进行反向 DNS 查找(然后超时并失败) 。ssh

一种解决方法是编辑 /etc/sshd_configsshd服务器机器上,而不是ssh客户端机器上将“UseDNS”设置为“no”。(从您最初提出问题的方式来看,听起来您可能已经在客户端上编辑了该文件,但这不会有什么不同。)

另一个解决方案是让您的 ISP(或负责您的公共路由 IP 地址的任何机构)在其 DNS 名称服务器上修复您的 IP 地址的反向 DNS 记录,这些 DNS 名称服务器对该 IP 地址块的反向 DNS 记录具有权威性。换句话说,“让人们能够根据您的 IP 地址找到您的主机名,并确保他们找到的主机名映射回您的 IP 地址”。

答案2

有关此问题的更多信息请参见此处: https://github.com/Homebrew/homebrew-dupes/issues/242

显然这是 Homebrew 当前版本的问题。(我自己也遇到过这种情况。)

答案3

我认为 Homebrew 的 libssh2 搞乱了 Apple 的 ssh 二进制文件。尝试:

brew uninstall --force libssh2. 

相关内容