仕事の初めにリモートボックスに開いた共有接続を再利用することを多用しています。
私の.ssh/config
は次のようになります:
ControlMaster auto
ControlPath ~/.ssh/control:%h:%p:%r
Host remote
HostName login.remote.com
User username
ForwardX11 yes
ServerAliveInterval 300
これは、1つの例外を除いてかなりうまく機能します。最初の接続(マスター接続)を確立した後、これは正常に機能します:マスター接続を備えた端末を使用して何かを行うことができますリモートと私は、ssh remote
を呼び出すことにより、新しい端末でマスター接続を再利用できます。これにより、資格情報を再入力しなくても新しい接続が開きます。
ただし、しばらく時間が経過し(数十分から数時間の間、よくわかりません)、新しい接続を開きたい場合、これは失敗し、マスター接続が閉じます。メッセージ付き(master端末上):
Connection to login.remote.com closed by remote Host.
Connection to login.remote.com closed.
および(新しい接続を開くために使用している端末で)
Shared connection to login.remote.com closed.
ほんの数秒前は完全に正常に機能していましたが(マスター接続を実行している端末を使用してリモートでコマンドを実行できました。
EDIT::これは新しく開かれたセッションのssh -vvv remote
出力であり、正しく開くことができません。
OpenSSH_6.1p1 Debian-4、OpenSSL 1.0.1c 2012年5月10日
debug1:構成データの読み取り/home/$USERNAME/.ssh/config
debug1:/home/$USERNAME/.ssh/config行27:リモートにオプションを適用する
debug1:構成データの読み取り/ etc/ssh/ssh_config
debug1:/ etc/ssh/ssh_config 19行目:*のオプションの適用
debug1:auto-mux:既存のマスターを試行しています
debug2:fd3設定O_NONBLOCK
debug2:mux_client_hello_exchange:マスターバージョン4
debug3:mux_client_forwards:リクエスト転送:0ローカル、0リモート
debug3:mux_client_request_session:入力
debug3:mux_client_request_alive:入力
debug3:mux_client_request_alive:完了pid = 23500
debug3:mux_client_request_session:セッションリクエストが送信されました
debug1:mux_client_request_session:マスターセッションID:5
debug3:mux_client_read_packet:ヘッダーの読み取りに失敗しました:パイプが壊れています
debug2:コントロールマスターが予期せず終了しました
login.remote.comへの共有接続が閉じられました。
これは私にはちょっと奇妙に思えますが、バグか設定ミスのどちらかだと思います。手伝ってもらえますか?
Sshconfigでこれらのオプションを無効にします。
ControlMaster auto
ControlPath ~/.ssh/control:%h:%p:%r