SSH が SSH2_MSG_SERVICE_ACCEPT 受信時に常にハングする

SSH が SSH2_MSG_SERVICE_ACCEPT 受信時に常にハングする

SSH に問題があります。何にも接続できません。すべての接続が SSH2_MSG_SERVICE_ACCEPT RECEIVED で無期限にハングします。OSX 10.6.8 を使用しています。

これは私の SSH 設定の問題だと思っているのですが、原因がわかりません。OS X に付属していたオリジナルの openssh は /usr/bin/ にインストールされており、brew インストールは /usr/local/bin/ にあります。私は 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

回避策の1つは、/etc/sshd_configを編集することです。クライアントマシンでsshdはなくサーバーマシン上ssh「UseDNS」を「no」に設定します。(質問の最初の書き方からすると、クライアントでそのファイルを編集した可能性がありますが、それは違いを生まないでしょう。)

もう 1 つの解決策は、ISP (またはパブリックにルーティング可能な IP アドレスを管理する機関) に依頼して、その 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. 

関連情報