È possibile condividere un socket tmux tra host?


11

Mi chiedo se è possibile condividere un socket server tmux tra host diversi. Ad esempio, ho una macchina virtuale (guest) in esecuzione all'interno del mio host e sto eseguendo una sessione tmux nel guest, è possibile per la mia macchina host accedere alla sessione tmux del guest e fare cose interessanti con esso? (ad es. invio di comandi alla sessione del guest)?

Risposte:


10

Nella mailing list di tmux-utenti è emerso un argomento correlato : tentativo di utilizzare socat per eseguire il tunneling del socket tmux

Sommario:

  • Il semplice inoltro della finestra di dialogo in-band over-the-socket tra un client tmux e il suo server non funzionerà perché tmux utilizza il passaggio del descrittore di file (il client passa la sua tty fd al server).
    • Potrebbe essere possibile sviluppare un proxy specializzato, ma sembra non banale: avrebbe bisogno di conoscere abbastanza il protocollo del socket tmux per sapere quando accettare e inviare fds e avrebbe bisogno di un metodo per eseguire il proxy fds e qualsiasi operazione fatta su quei fds.
  • Il poster mailing list è riuscito a elaborare un tmux sistema di inoltro utilizzando socat che in gran parte ha funzionato .
    • Probabilmente potresti impostare una diversa dimensione iniziale del terminale dando le opzioni -xe -ya new-session, ma ciò non risolverà la gestione del ridimensionamento ( socat avrebbe bisogno di gestire e inoltrare SIGWINCH (tramite ioctls TIOCGWINSZ / TIOCSWINSZ)).
    • Sembra che tu possa desiderare che il tuo "server di inoltro" sia nel tuo SO guest, ma la soluzione collegata renderebbe il server nel tuo SO host. Probabilmente potresti rielaborarlo in modo da fare il contrario.

A meno che non ci siano motivi per cui non è possibile eseguire un server SSH sul proprio guest, è probabilmente più semplice utilizzare SSH per accedere al proprio guest (lasciare che i programmi SSH gestiscano la connessione in rete e la gestione dei tty) e si colleghino (o emettano comandi a) il residente tmux in questo modo:

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

È possibile creare una chiave SSH e ~/.ssh/configvoci sull'host per semplificare le righe di comando ssh (ovvero utilizzando appena ssh guestsopra anziché ssh -i guest-user1-key user1@guest-vm-ip).


Mi chiedo se questo potrebbe ora essere costruito usando la modalità di controllo di
tmux
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.