ホスト間でtmuxソケットを共有できますか?


11

異なるホスト間でtmuxサーバーソケットを共有できるかどうか疑問に思っています。たとえば、ホスト内で仮想マシン(ゲスト)を実行していて、ゲストでtmuxセッションを実行しています。ホストマシンがゲストのtmuxセッションにアクセスして、それを使って素晴らしいことをすることはできますか?(たとえば、ゲストのセッションにコマンドを送信する)?

回答:


10

関連トピックがtmux-usersメーリングリストで取り上げられました:socatを使用してtmuxソケットをトンネルしようとしています

概要:

  • tmuxはファイル記述子の受け渡しを使用するため(クライアントがtty fdをサーバーに渡す)、tmuxクライアントとそのサーバー間でインバンドのソケット経由のダイアログを転送するだけでは機能しません。
    • 専用のプロキシを開発することは可能かもしれませんが、それは簡単ではないようです。fdsをいつ受け入れて送信するかを知るには、十分なtmuxソケットプロトコルを知る必要があり、プロキシをプロキシする方法が必要です。 fdsおよびそれらのfdsで実行されるすべての操作。
  • メーリングリストの投稿者は、ほとんどうまくいったsocat使っtmux転送システムをうまく管理しました
    • -x-yオプションをに与えることで、異なる初期端末サイズを設定できますがnew-session、これはサイズ変更の処理を修正しません(socatSIGWINCHを処理して転送する必要があります(TIOCGWINSZ / TIOCSWINSZ ioctlsを使用))。
    • 「転送サーバー」をゲストOSに配置したいようですが、リンクされたソリューションではサーバーがホストOSに配置されます。おそらくそれをやり直すことができるので、逆になります。

何らかの理由でゲストでSSHサーバーを実行できない場合を除いて、SSHを使用してゲストにログインし(SSHプログラムにネットワーク経由の接続とttyの管理を処理させる)、アタッチ(またはコマンドを発行)する方がおそらく簡単ですto)常駐tmuxをそのように:

host$ ssh guest tmux attach -t console
host$ ssh guest tmux new-session -s 'fiddling around'
# etc.

~/.ssh/configホスト上にSSHキーとエントリを作成して、sshコマンドラインを簡略化できます(つまり、のssh guest代わりに上記を使用ssh -i guest-user1-key user1@guest-vm-ip)。


tmux制御モードを使用してこれを構築できるようになったのかどうか疑問に思います
mndrix
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.