背景: OpenSSHのデフォルト設定MaxStartups
は 10:30:60 で、ほとんどの Linux ディストリビューションはこのデフォルトを維持しています。つまり、sshd が新しい着信接続の 30% をドロップし始める前に、キーを交換して認証する ssh 接続は一度に 10 個しか存在できず、認証されていない接続が 60 個になると、すべての新しい接続がドロップされます。接続がセットアップされると、この制限に対してカウントされません。たとえば、この質問を参照してください。
問題: GNU 並列を使用して、多数のバックエンド ノードで大量のデータ処理を実行しています。単一のフロントエンド マシンからこれらのノードにアクセスする必要があり、ssh:s を使用しProxyCommand
てバックエンドに透過的にアクセスするためのトンネルを設定しています。ただし、フロントエンドが一度に認証できる数よりも多くの ssh 接続が並列に生成されているため、認証されていない接続の最大制限に常に達しています。
ControlMaster auto
フロントエンドへの単一の接続を再利用しようとしましたが、うまくいきませんでした。
質問:新しい ssh 接続が開かれる速度を制限するにはどうすればよいですか? 特定の時間に開いている認証されていない接続の数を制御し、別の接続が認証されるまで新しい接続を遅らせることはできますか?