É possível compartilhar soquetes tmux entre hosts?

9

Eu estou querendo saber se é possível compartilhar um soquete do servidor tmux entre hosts diferentes. Por exemplo, eu tenho uma máquina virtual (guest) rodando dentro do meu host, e estou rodando uma sessão do tmux no guest, é possível para minha máquina host acessar a sessão tmux do guest e fazer coisas legais com ela? (por exemplo, enviando comandos para a sessão do convidado)?

    
por EnToutCas 18.11.2011 / 17:21

1 resposta

8

Um tópico relacionado surgiu na lista de discussão tmux-users : Tentando usar o socat para sintonizar o soquete do tmux

Resumo:

  • O simples encaminhamento do diálogo dentro da banda sobre o socket entre um cliente tmux e seu servidor não funcionará porque tmux usa a passagem do descritor de arquivo (o cliente passa seu tty fd para o servidor).
    • Pode ser possível desenvolver um proxy especializado, mas parece não ser trivial - ele precisaria conhecer o suficiente do protocolo de soquete tmux para saber quando aceitar e enviar fds , e seria necessário um método de proxies dos fds e quaisquer operações feitas nesses fds.
  • O cartaz da lista de e-mails conseguiu criar um tmux sistema de encaminhamento usando socat que trabalhou principalmente .
    • Provavelmente você poderia definir um tamanho de terminal inicial diferente dando as opções -x e -y a new-session , mas isso não corrigiria o tratamento de redimensionamento (a socat precisaria manipular e encaminhar SIGWINCH (através de TIOCGWINSZ / TIOCSWINSZ ioctls)).
    • Parece que você pode querer que seu "servidor de encaminhamento" esteja em seu sistema operacional convidado, mas a solução vinculada tornaria o servidor em seu sistema operacional host. Você provavelmente poderia retrabalhar, então acontece o contrário.

A menos que haja algum motivo para você não executar um servidor SSH em seu convidado, provavelmente será mais fácil usar o SSH para efetuar login no seu convidado (permitir que os programas SSH lidem com a conexão pela rede e gerenciar os ttys) e anexar a ( ou emitir comandos para) o residente tmux dessa forma:

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

Você pode criar uma chave SSH e ~/.ssh/config entradas em seu host para simplificar as linhas de comando ssh (ou seja, usando apenas ssh guest acima em vez de ssh -i guest-user1-key user1@guest-vm-ip ).

    
por 19.11.2011 / 06:20