ログイン時の長い待ち時間


20

サーバーにログインすると、次のメッセージが表示されます。

No mail.
Last login: Fri Nov  5 14:22:45 2010...

それから私は5秒間待たなければならず、準備ができています...

wolfy@ubuntu-server:~$

この待機時間は正常ですか、これを「修復」するために何かを行う必要がありますか?


1
sshオプションkeepaliveを使用していますか?
パンサー

回答:


18

これは通常、ファイルをpam_motd再生成した結果/etc/motdです。個々のスクリプトをチェックして、/etc/update-motd.d何かが特に遅いかどうかを確認できます。


ブリリアント。それは、90-updates-availableでした。また、50-landscape-sysinfoは最も高速ではありません。
マットH

13

10.04(LTS)でも同じ問題があります。

でsshを実行すると-vvv、次の場所で死にます:

debug1: Entering interactive session.

この答えを拡張します。

サーバーをリモートで再起動し、DEBUG logginを有効にしました。また、この機会を利用してログインしたままにし、他のログイン試行を観察しました。ここで何が起こるかです。クライアントは接続し、承認され、上記のメッセージでハングします。

サーバーでは、プロセスリストに次のように表示されます。

root       835  0.0  0.1  11476  3348 ?        Ss   13:39   0:00 sshd: till [priv]
root       840  0.0  0.0   4804  1124 ?        S    13:39   0:00 /bin/sh -c /usr/bin/env -i PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin /bin/run-parts --lsbsysinit /etc/update-motd.d
root       841  0.0  0.0   4728  1108 ?        S    13:39   0:00 /bin/run-parts --lsbsysinit /etc/update-motd.d
root       854  0.0  0.0   4804  1144 ?        S    13:39   0:00 /bin/sh /etc/update-motd.d/50-landscape-sysinfo
root       861  0.2  0.5  15388  9248 ?        S    13:39   0:00 /usr/bin/python /usr/bin/landscape-sysinfo
root       863  0.0  0.0      0     0 ?        Z    13:39   0:00 [who] <defunct>

/usr/bin/python /usr/bin/landscape-sysinfoログインしている間は問題なく実行できますが、何らかの理由でログインプロセスが停止する理由がわかりません。プロセスを強制終了すると、ログインがプロンプトに続き、成功します。

これはssh(d)の問題ではなくupdate-motd、ランドスケープに関連しているようです。update-motdパッケージをアンインストールしましたが、/etc/update-motdディレクトリが保持され、スクリプトがまだ実行されているようで、プロセスがハングしました。


これをさらにデバッグする:

判明し/etc/update-motd.d/たディレクトリが本当にパッケージに属していないupdate-motd、SSHDを通じてPAM認証によってトリガーされるようです。


私はそれを打ち付けたようです!

次のファイルでpam_motdを無効にしました。

  • /etc/pam.d/sshd
  • /etc/pam.d/login

もう一つ:

apt-get purge landscape-client landscape-common

これらは一定の範囲で役立つようです。ただし、問題のスクリプトを削除するだけ/etc/update-motd.d/で、そのディレクトリ内のすべてのスクリプトを削除することも、削除することもしませんpam_motd

一般的に、pam_motdそれが何であれ、ログインプロセスを一定の範囲まで遅らせるように見えるので、完全に無効にする方法を見つけませんでした。のスクリプトのようにブロックしませんlandscape-commonが、遅いです。

この問題に関するバグレポート:

そこからの回避策:

ログインする機能はmotdを提示するよりも重要であることは正しいです。この動作が問題になる場合は、いくつかの方法で無効にできます。

  • /etc/pam.d/sshdmotdを表示したくない場合は、「pam_motd」行をコメント化します。
  • /etc/update-motd.dディレクトリの内容を削除します。
  • chmod -x /etc/update-motd.d実行したくないスクリプト。

10

最終的に自分で解決策を見つけました:

  1. sudo apt-get remove landscape-client landscape-common
  2. コメント行 session optional pam_motd.so/etc/pam.d/login/etc/pam.d/sshd

これでログインが瞬時になりました!


いくつかのネットワークの問題が統計を保持しているように見えますか?
0xF2

4

あなたの説明から、それはネットワークの問題のように聞こえます。診断するには:

  • -vパラメータを指定してsshを実行すると、冗長になります。
  • 接続しているSSHサーバーにpingを実行し、これも同時にハングするかどうかを確認します。
  • 同じサーバーに他の種類の転送を試してください。たとえば、-limit-rateパラメーターを指定してwgetを実行し、HTTPを介してファイルを取得し、「ハング」動作をトリガーするのに十分な時間がかかるようにします。
  • アイドル状態のときだけハングするのか、それとも何かをしているときにハングするのかを確認します。アイドル中にハングした場合、-v診断でおそらく通知されます。その場合、キープアライブを使用することをお勧めします(ssh -o "TCPKeepAlive yes")

WindowsとPuTTYでOKに接続できれば、おそらくサーバー側の問題ではありません。


3

場合PermitEmptyPasswordUsePAM両方有効になっている、OpenSSHサーバは常に、それは認証が問題になっているアカウントに必要ではないというサインとして受け取り、ヌル・パスワードで認証を試みます。これは、両方のプロトコルで認証プロセスが開始されるとすぐに行われ、クライアントからの「実際の」認証要求への応答ではありません。OpenSSHは、sshd_configフラグPermitEmptyPasswordが設定されている場合にのみこのようなアクセスを許可します。残念ながら、コードの記述方法は、どのような場合でもパスワードテストを実行するため、失敗としてPAMまで表示されます。

だから:PermitEmptyPasswordまたはを無効UsePAMにしますが、覚えておいてください:PAMなしでは、キーなしではログインできません。

参照:https : //groups.google.com/forum/?fromgroups=#!topic / comp.security.ssh / wExY8lWlG-c


同じ問題(遅いログイン)に遭遇したため、この古い質問にこの回答を追加しましたが、ここで問題を解決できるものはありません。これが私の解決策です。
アレッサンドロペザト

両方の設定を無効にする必要がありました
Androbin

2

ログインすると、ubuntuはこれらのファイルを1つ以上実行します。

/etc/bash.bashrc
~/.bash_profile
~/.bashrc

あなたはそれらの中に何があるのか​​を見ることができ、多分時間がかかっているものを見るためにそれらを実行することもできます。


2

私の限られた経験では、パテは機能しますが、Linux、この場合はUbuntuは機能しませんが、通常は機能し続けます。ネットワークまたはサーバーの問題は、両方のクライアントOSに影響します。

コマンドラインで上記のキープアライブオプションを使用できますが、入力するのは面倒です。

いくつかの構成ファイルを簡単に編集できます。

がありroot access、すべてのユーザーに対して自動的に有効にする場合は、編集/etc/ssh/ssh_config、追加

KeepAlive yes
ServerAliveInterval 120

ルートアクセスがない場合、または単一のユーザーに対して有効にする場合は~/.ssh/config、同じ2行を編集して追加します。


0

/ var / logでシステムログを確認します。関連するエラー/タイムアウトのメッセージが見つかる場合があります。


0

前に時間があれば

編集 /etc/sshd_config

設定(または追加)

UseDNS no

または/etc/hosts、静的ローカルIPの場合はIPを追加します


0

すでにログインしている接続(または別のコンソール)からサーバーにログインしているときに、実行中のプロセスを監視することができます。その時点でどのプロセスが最もアクティブであるか、または最もCPUを使用しているのかを特定する機会があります。

以下は可能な方法の1つです。

  1. 他のコンソールでログインしてみてください。
  2. topそこを実行して、何が起こるかを確認してください。
  3. 最初のコンソールにログインします。

CPUを集中的に使用する計算が原因で遅延が発生しない場合は、不適切なものを見つけることはできません。この場合、問題はI / Oバウンド(ディスクの読み取り/書き込みまたはネットワーク応答の待機)である可能性があります。


上部はこれを示しています(ログイン時):12112 sshd 20 0 6988 856 412 S 13.9 0.1 0:00.42 sshd
Wolfy

@Idi、これはコメントにすべきだと思う。
シェパン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.