
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.