家の外から、SSHを使用してUbuntuサーバーにログインするたびに、パスワードのプロンプトを取得するのに約6秒かかりますが、Webホスティングサーバーにログインするのに約1秒かかります。これを高速化するにはどうすればよいですか?
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=8.04
DISTRIB_CODENAME=hardy
DISTRIB_DESCRIPTION="Ubuntu 8.04.1"
$ ssh -v
OpenSSH_4.7p1 Debian-8ubuntu1.2, OpenSSL 0.9.8g 19 Oct 2007
$ cat /proc/cpuinfo
model name : Dual-Core AMD Opteron(tm) Processor 1210
cpu MHz : 1000.000
cache size : 1024 KB
$ cat /proc/meminfo
MemTotal: 2074528 kB
私がこれについて見た最大の理由は、SSHDの構成オプションUseDNS
です。このオプション(デフォルトで有効)により、サーバーは着信要求でDNS解決を実行します。時間のかかる操作。ログインが1分からパスワードプロンプトを数秒以内に待つのを見ました。サーバー上で/etc/ssh/sshd_config
を編集し、下部にUseDNS no
を追加して(存在しない場合)、service ssh restart
を使用してSSHデーモンを再起動すると、次回の接続時に改善が見られます。
私にとって、長いSSHセッションログインの理由番号2(サーバー側のUseDNSオプションの後)は、IPv6を使用して接続しようとするクライアント側の試みです(明らかに、ネットワーク上または他のほとんどのネットワーク上で正しくセットアップされていませんが、そのことについては)。
Ubuntuフォーラムで HOWTO:SSHログインの高速化 を参照してください。
「解決策」は、IPv4のみを有効にすることです。
1)所定のSSHクライアント呼び出しの場合:
ssh -4 login@hostname
2)または/etc/ssh/ssh_config
のsshクライアント構成でグローバルに:
Host *
AddressFamily inet
もちろん、ネットワーク上でIPv6を適切に設定する方が正しいでしょうが、だれがそのための時間を持っていますか:)
Sshコマンドで次のオプションを追加してみてください。
-o "PreferredAuthentications=password"
(これはsshが他の認証方法をネゴシエートするのを防ぎ、パスワードpromtpを高速化します!)
さらに、リモートマシンで(ログインするユーザーとして)これを入力して、MOTDメッセージを抑制します。
touch ~/.hushlogin
UseDNS
をオフにするほどの違いはありませんが、接続速度が遅い場合に役立ちます。
かなり古いUbuntuバージョンを使用しているので、次のバグである可能性があります。 https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/300151
Dbus(/etc/init.d/dbus restart
)の再起動が役立つ場合があります。