SSH接続の試行が連続して高速にハングする

SSH接続の試行が連続して高速にハングする

を使用して小さなファイルを連続してコピーする bash スクリプトがありますscp。このスクリプトには多数のscpコマンドがあります。他のサーバーへの認証には SSH キーが使用されています。

ファイルが非常に小さいため、SSH 接続の試行は非常に速く行われ、スクリプトがほとんど実行されないまま、scp無期限にハングします。

  • エラーは発生しません。
  • ネットワーク機器は不要となり、サーバーは同じサブネット上で通信するようになります。
  • 問題はrsync同様に実証されています。

これらの scp 呼び出しの間に 1 秒の間隔を置くとsleep、スクリプトはハングすることなくスムーズに実行されます。

この明らかなレート制限はどこで確認すればよいでしょうか? 他のサーバー間ではこのような現象は見られません...

答え1

時々人々はセットアップするiptables を使用したレート制限

OpenSSH には、MaxStartups着信クライアントに対してレート制限を行うオプションがあります。デフォルトは (少なくとも私のコンピュータでは) です10:30:100

sshd_config を実行する

あるいは、コロンで区切られた 3 つの値 start:rate:full (例: "10:30:60") を指定して、ランダムな早期ドロップを有効にすることもできます。現在 start (10) の認証されていない接続がある場合、sshd(8) は、rate/100 (30%) の確率で接続試行を拒否します。確率は直線的に増加し、認証されていない接続の数が full (60) に達すると、すべての接続試行が拒否されます。

OpenSSH 接続遅延のもう 1 つの比較的一般的な問題と原因は、接続試行時に着信 IP アドレスの逆引きを試​​みる OpenSSH サーバーの機能に関連しています。この DNS 機能は、一部の古い rhost 互換認証方法との互換性を保つために必要だと思いますが、この機能はもうほとんど誰も使用していないと思います。いずれにしても、DNS リゾルバーが正しく構成されていないか、壊れたリゾルバーを使用するように構成されているか、またはクライアント IP が接続している逆引きゾーンに関する何かが壊れている場合、DNS 解決機能は問題を引き起こします。

理想的な答えは、DNS を修正し、DNS が常にエラーなく動作し、迅速に応答するようにすることです。ただし、DNS 解決が必要ない場合は、サーバーが名前を解決しようとするのを停止するのが簡単な解決策です。UseDNS noで設定しますsshd_config

関連情報