SSHリモートシステムへの最初のアクセス時に、ControlMasterバックグラウンドプロセスを自動的に生成します。


9

最近、SSHクライアントのControlMaster機能を頻繁に使用しています。これにより、単一のSSH-TCP接続を使用して、複数のシェルと同じリモートシステムへのポート転送を行うことができます。これについて最も厄介なことは、開かれた最初のシェルのプロセスが自動的にControlMasterになることです。つまり、このプロセスが終了すると、コントロールマスター接続を使用する他のすべてのシェルとポート転送が利用できなくなります。

ControlMaster接続を使用した接続が存在する限り、リモートシステムへの最初のsshコマンドが追加のバックグラウンドプロセスを生成し、接続を保持するようにしたいので、他のクラッシュの危険を冒さずに実際のシェルを単純に閉じることができます接続。理想的には、バックグラウンドのControlMasterプロセスは、最終的にシャットダウンする前に、新しいシェルまたはポート転送がControlMasterを使用するまでしばらく待機するように構成可能であることさえあります。

sshクライアントにそのようなことをさせる方法はありますか?sshを使用して最初のシェルを作成する前に、このような接続を手動で作成できることはわかっていますが、そうしないとたまにそれを忘れてしまうので、明示的にこれを自動的に実行させたいと思います。

.ssh / configでリモートサーバー名の構成済み省略形を使用することが多く、名前としてUSERNAME @ NETWORK_NAME:NETWORK_PORTを使用してControlMasterソケットが作成されるため、ラッパースクリプトにそれを実行させるのも簡単ではありません。したがって、ラッパーが意図したとおりに機能するには、.config / sshを完全に理解する必要があります。

回答:


10

ControlPersist構成オプションを使用する必要があります。

 ControlPersist
         When used in conjunction with ControlMaster, specifies that the
         master connection should remain open in the background (waiting
         for future client connections) after the initial client connec‐
         tion has been closed.  If set to “no”, then the master connection
         will not be placed into the background, and will close as soon as
         the initial client connection is closed.  If set to “yes”, then
         the master connection will remain in the background indefinitely
         (until killed or closed via a mechanism such as the ssh(1) “-O
         exit” option).  If set to a time in seconds, or a time in any of
         the formats documented in sshd_config(5), then the backgrounded
         master connection will automatically terminate after it has
         remained idle (with no client connections) for the specified
         time.

ControlPersist noは、デフォルトの動作です。これは、説明したとおりです。私が使用しControlPersist 4Hを背景セッションは定期的に自分自身をクリーンアップできるようにします。


これはRHELで利用できますか?
ewwhite 2014

1
@ewwhite RHELはありませんが、CentOSは同じです。これはCentOS 7にありますが、CentOS 6.5にはないようです。openssh changelogはそれがopenssh 5.6で追加されたことを示唆しており、CentOS 6.xには5.3のみ(7.0にはopenssh 6.4が含まれています)
Daniel Lawson
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.