とを含む2つのarch linux
仮想マシンdebian
(で実行中)があります。virtual box
しばらくして、.NET経由でVMに接続するのにarch
時間がかかり始めましたssh
。最初は、しばらくすると連続的な試みが急速に行われます。arch
仮想マシンで見た内容は次のとおりです。
debug1: userauth-request for user yuri service ssh-connection method none
debug1: attempt 0 failures 0
debug3: Trying to reverse map address 10.0.2.2.
# ^^^ spends a lot of time after this line
debug2: parse_server_config: config reprocess config len 314
debug2: input_userauth_request: setting up authctxt for yuri
debug1: PAM: initializing for "yuri"
debug1: PAM: setting PAM_RHOST to "10.0.2.2"
debug1: PAM: setting PAM_TTY to "ssh"
debug2: input_userauth_request: try method none
Failed none for yuri from 10.0.2.2 port 35786 ssh2
10.0.2.2
仮想マシンのデフォルトゲートウェイです。どういう意味ですか?
PSこれ良い答えおかげで、この問題を研究するのにある程度進展を遂げることができました。
答え1
私の考えでは、問題はDNS要求のタイムアウトです。接続するサーバーでUseDNSオプションをオフにします。
サーバーログを見ると、これはほとんど確認されています(公開するのはうまくいきました:)。
debug3: Trying to reverse map address 10.0.2.2.
# ^^^ spends a lot of time after this line
報告man sshd_config
:
UseDNS Specifies whether sshd(8) should look up the remote host name and check that the resolved host name for the remote IP address maps back to the very same IP address. The default is “yes”.
これはほとんど意味がない。ぜひご確認くださいいいえ接続を終了します。通過できない場合は、指を振るメッセージのみが記録されます。
7月9日05:43:00 brick sshd [18971]:アドレス200.41.233.234はhost234.advance.com.arにマップされますが、これはそのアドレスに再マップされません。侵入の試みが可能です!
これは、不能なISPを使用しているユーザーにひどい誤検出を生成するだけです。
いいですね。では、これはどのように遅延を引き起こすのでしょうか?
DNS サーバーがすぐに応答しない場合、クライアントは待ってから再試行する傾向があります。 (ネットワーク輻輳によってDNSパケットが遅延または失われる場合)DNSサーバーがまったく応答しない場合、クライアントは最終的に放棄します。たとえば、dig
私のシステムでは、再試行時間は15秒です。 (より具体的なDNSライブラリコードを使用しますが、原理は同じです。)
$ time dig invalid @192.0.2.1
; <<>> DiG 9.9.4-P2-RedHat-9.9.4-12.P2.fc20 <<>> invalid @192.0.2.1
;; global options: +cmd
;; connection timed out; no servers could be reached
real 0m15.020s
user 0m0.010s
sys 0m0.011s
したがって、問題は、リバースルックアップが応答を受け取らないことです。サーバーは手動で同じ照会を手動で実行でき、SSHと同じ待ち時間を表示する必要があります。 getent hosts 10.0.2.2
。
答え2
この段階で接続速度が遅くなる原因はいくつかあります。 ~からこれ私が見た問題の1つであるLinkは暗号化に関連していました。
ついに問題が何であるかを見つけました。
私の/home/userディレクトリは暗号化されているので、ログインしないとsshはそのディレクトリにアクセスできません。
もう一つの可能性は以下から来ています。ここサービス関連SELinux
。
はい、
SELinux
それは理由かもしれません。ディレクトリ.ssh
のラベルが正しく指定されていない可能性があります。より/var/log/audit/audit.log
。とマークする必要がありますssh_home_t
。確認してください。ls -laZ
必要に応じて実行してくださいrestorecon -r -vv /root/.ssh
。
またこれまた、リンクを介してPAM認証がSSH速度低下の原因となる可能性があることも確認しました。
'を編集してください。/etc/ssh/ssh_config「」と入力し、次の行をコメントアウトします。
GSSAPIAuthentication yes GSSAPIDelegateCredentials no