回答:
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を無効にしました。
もう一つ:
apt-get purge landscape-client landscape-common
これらは一定の範囲で役立つようです。ただし、問題のスクリプトを削除するだけ/etc/update-motd.d/
で、そのディレクトリ内のすべてのスクリプトを削除することも、削除することもしませんpam_motd
。
一般的に、pam_motd
それが何であれ、ログインプロセスを一定の範囲まで遅らせるように見えるので、完全に無効にする方法を見つけませんでした。のスクリプトのようにブロックしませんlandscape-common
が、遅いです。
この問題に関するバグレポート:
そこからの回避策:
ログインする機能はmotdを提示するよりも重要であることは正しいです。この動作が問題になる場合は、いくつかの方法で無効にできます。
/etc/pam.d/sshd
motdを表示したくない場合は、「pam_motd」行をコメント化します。/etc/update-motd.d
ディレクトリの内容を削除します。- chmod -x
/etc/update-motd.d
実行したくないスクリプト。
あなたの説明から、それはネットワークの問題のように聞こえます。診断するには:
WindowsとPuTTYでOKに接続できれば、おそらくサーバー側の問題ではありません。
場合PermitEmptyPassword
とUsePAM
両方有効になっている、OpenSSHサーバは常に、それは認証が問題になっているアカウントに必要ではないというサインとして受け取り、ヌル・パスワードで認証を試みます。これは、両方のプロトコルで認証プロセスが開始されるとすぐに行われ、クライアントからの「実際の」認証要求への応答ではありません。OpenSSHは、sshd_configフラグPermitEmptyPassword
が設定されている場合にのみこのようなアクセスを許可します。残念ながら、コードの記述方法は、どのような場合でもパスワードテストを実行するため、失敗としてPAMまで表示されます。
だから:PermitEmptyPassword
またはを無効UsePAM
にしますが、覚えておいてください:PAMなしでは、キーなしではログインできません。
参照:https : //groups.google.com/forum/?fromgroups=#!topic / comp.security.ssh / wExY8lWlG-c
ログインすると、ubuntuはこれらのファイルを1つ以上実行します。
/etc/bash.bashrc
~/.bash_profile
~/.bashrc
あなたはそれらの中に何があるのかを見ることができ、多分時間がかかっているものを見るためにそれらを実行することもできます。
私の限られた経験では、パテは機能しますが、Linux、この場合はUbuntuは機能しませんが、通常は機能し続けます。ネットワークまたはサーバーの問題は、両方のクライアントOSに影響します。
コマンドラインで上記のキープアライブオプションを使用できますが、入力するのは面倒です。
いくつかの構成ファイルを簡単に編集できます。
がありroot access
、すべてのユーザーに対して自動的に有効にする場合は、編集/etc/ssh/ssh_config
、追加
KeepAlive yes
ServerAliveInterval 120
ルートアクセスがない場合、または単一のユーザーに対して有効にする場合は~/.ssh/config
、同じ2行を編集して追加します。
すでにログインしている接続(または別のコンソール)からサーバーにログインしているときに、実行中のプロセスを監視することができます。その時点でどのプロセスが最もアクティブであるか、または最もCPUを使用しているのかを特定する機会があります。
以下は可能な方法の1つです。
top
そこを実行して、何が起こるかを確認してください。CPUを集中的に使用する計算が原因で遅延が発生しない場合は、不適切なものを見つけることはできません。この場合、問題はI / Oバウンド(ディスクの読み取り/書き込みまたはネットワーク応答の待機)である可能性があります。