ローカルTTYセッションをブロックせずに機会的に共有されるSSH接続を確立する方法はありますか?

ローカルTTYセッションをブロックせずに機会的に共有されるSSH接続を確立する方法はありますか?

鉱山ではこの設定を有効に~/.ssh/configしましたControlMaster auto。それは私にとって非常に効果的ですが、私を迷惑にする一つの行動があり、それを取り除きたいと思います。

2つの端末エミュレータウィンドウAとBがあるとしましょう。ウィンドウAはリモートホストへの接続を呼び出し、sshウィンドウBでも同じことを行います。次に、exitウィンドウAを入力してセッションを閉じます。接続が切断されましたが、ウィンドウsshAのプロセスは、ウィンドウBのプロセスがリモートセッションも終了するのを待たなければならないため、ローカルセッションでは終了しません。つまり、制御ソケットを実行し続ける必要があります。

ウィンドウAから切断した場合は、sshウィンドウBのセッションが継続して実行されている間に呼び出された元のローカルセッションにすぐに戻ることをお勧めします。あなたは次のように尋ねることができます。では、どのプロセスが制御ソケットを管理する必要がありますか?理想的には、もはや実行中のセッションがない場合は、自動的に切断されたユーザーシステムインスタンスの管理下で実行される専用の3次プロセスになることを願っています。しかし、バックグラウンドプロセスが長く続く昔ながらのアプローチも問題ありません。

私は制御ソケットホストを手動で起動するのを避けたいと思います。最初のセッションを開くと、自動的に開始する必要があります。

大丈夫ですか?

答え1

次のコマンド

ssh -f -N remote_host

sshリモートホストへのセッションは作成されますが、コマンド(-N)と背景自体(-f)は実行されません。このコマンドはマスターコントロールとして使用できます。

次のようなものをトンネリングしたい場合

ssh -X -f -N remote_host

アイドルセッションが切断された場合(たとえば、NATタイムアウトのため)、次のエントリを追加します。

-o ServerAliveInterval=30 

(またはconfigファイルのそれに対応するエントリ)は、セッションをアクティブなままにしようとします。

関連情報