「sshの接続が遅い」の編集履歴(バックアップ)一覧はこちら
「sshの接続が遅い」(2011/06/03 (金) 21:05:51) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
以下の環境でホストOSからゲストOSにsshでログインしようとしたところ、リモートホストのログインプロンプトが出るのが遅く、ログインに時間がかかるので調べてみた。
なお、sshでの接続先はホスト名は使わず、IPアドレスを直接指定している。
>ホストOS : Ubuntu10.10
>ゲストOS : Fedora14(VMware Player使用、NICはブリッジ接続)
ネットで調べてみると以下の情報があった。
1)DNSでの名前解決に時間がかかっている。
/etc/ssh/sshd_config に以下の設定を入れる.
>UseDNS=no
sshd_configなのでsshサーバ側の設定であり、Fedora14ではコメントアウトされており、デフォルトのyesのようである。
2)GSSAPI 認証を試みているので時間がかかっている。
/etc/ssh/ssh_config に以下の設定を入れる.普通は no に設定されている.
>GSSAPIAuthentication no
ssh_configなのでsshクライアントの設定であり、Ubuntu14では yes で設定されていた。
3)IPv6 で接続しようとして接続できずに時間がかかっている。
IPv4(inet) のみを使用するよう/etc/ssh/ssh_config に以下の設定を入れる。
>AddressFamily inet
ssh_configなのでsshクライアントの設定であり、Ubuntu10.10ではコメントアウトされており、デフォルトの any であり、IPv6も有効なようである。
まずは、何が悪いか推測するため、Fedora14側でUbuntu10.10とのパケットをwiresharkでパケットキャプチャしてみた。
接続の途中で MDNS というプロトコルで、Ubuntu10.10から224.0.0.251からquery PTR というパケットが飛んでいた。
Fedora14のアドレスを逆引きをしているが、応答がないためリトライして時間がかかっているようである。
MDNSはマルチキャストDNS(Multicast DNS)というもので、IETF(Internet Engineering Task Force)で提唱されているゼロコンフィギュレーション技術の一部らしい。DNSサーバがなくても、マルチキャストアドレス224.0.0.251、ポート5353にudpパケットを投げ、該当するマシンが応答することで名前解決する仕組みらしい。
だとすると、ホスト名による正引きとなりそうなものだが、なぜ逆引きなのかよくわからない。
とりあえずUbuntu10.10が問い合せているので、ホストOS側の問題と推測した。
再度ネットで調べてみると、以下の記事が見つかった。
https://lists.ubuntu.com/archives/ubuntu-jp/2009-February/001566.html
https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/84899
Ubuntu10.10の/etc/ssh/ssh_configを確認すると、 GSSAPIAuthentication no になっており、yesにしたところ、すぐに接続できるようになった。
----
#comment()
----
以下の環境でホストOSからゲストOSにsshでログインしようとしたところ、リモートホストのログインプロンプトが出るのが遅く、ログインに時間がかかるので調べてみた。
なお、sshでの接続先はホスト名は使わず、IPアドレスを直接指定している。
>ホストOS : Ubuntu10.10
>ゲストOS : Fedora14(VMware Player使用、NICはブリッジ接続)
ネットで調べてみると以下の情報があった。
1)DNSでの名前解決に時間がかかっている。
/etc/ssh/sshd_config に以下の設定を入れる.
>UseDNS no
sshd_configなのでsshサーバ側の設定であり、Fedora14ではコメントアウトされており、デフォルトのyesのようである。
2)GSSAPI 認証を試みているので時間がかかっている。
/etc/ssh/ssh_config に以下の設定を入れる.普通は no に設定されている.
>GSSAPIAuthentication no
ssh_configなのでsshクライアントの設定であり、Ubuntu14では yes で設定されていた。
3)IPv6 で接続しようとして接続できずに時間がかかっている。
IPv4(inet) のみを使用するよう/etc/ssh/ssh_config に以下の設定を入れる。
>AddressFamily inet
ssh_configなのでsshクライアントの設定であり、Ubuntu10.10ではコメントアウトされており、デフォルトの any であり、IPv6も有効なようである。
まずは、何が悪いか推測するため、Fedora14側でUbuntu10.10とのパケットをwiresharkでパケットキャプチャしてみた。
接続の途中で MDNS というプロトコルで、Ubuntu10.10から224.0.0.251からquery PTR というパケットが飛んでいた。
Fedora14のアドレスを逆引きをしているが、応答がないためリトライして時間がかかっているようである。
MDNSはマルチキャストDNS(Multicast DNS)というもので、IETF(Internet Engineering Task Force)で提唱されているゼロコンフィギュレーション技術の一部らしい。DNSサーバがなくても、マルチキャストアドレス224.0.0.251、ポート5353にudpパケットを投げ、該当するマシンが応答することで名前解決する仕組みらしい。
だとすると、ホスト名による正引きとなりそうなものだが、なぜ逆引きなのかよくわからない。
とりあえずUbuntu10.10が問い合せているので、ホストOS側の問題と推測した。
再度ネットで調べてみると、以下の記事が見つかった。
https://lists.ubuntu.com/archives/ubuntu-jp/2009-February/001566.html
https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/84899
Ubuntu10.10の/etc/ssh/ssh_configを確認すると、 GSSAPIAuthentication no になっており、yesにしたところ、すぐに接続できるようになった。
----
#comment()
----