Um tópico relacionado surgiu na lista de discussão tmux-users : Tentando usar o socat para encapsular o soquete tmux
Resumo:
- O simples encaminhamento da caixa de diálogo dentro da banda e sobre o soquete entre um cliente tmux e seu servidor não funcionará porque o 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 que isso não é trivial - seria necessário conhecer o suficiente do protocolo de soquete tmux para saber quando aceitar e enviar fds e seria necessário um método de proxy do fds e quaisquer operações realizadas nesses fds.
- O pôster da lista de discussão conseguiu elaborar um sistema de encaminhamento tmux usando o socat que mais funcionava .
- Você provavelmente poderia definir um tamanho de terminal inicial diferente, dando ao
-x
e -y
opções para new-session
, mas isso não correção manipulação de redimensionamento ( socat precisaria alça e SIGWINCH frente (através TIOCGWINSZ / ioctls TIOCSWINSZ)).
- Parece que você pode querer que seu “servidor de encaminhamento” esteja no sistema operacional convidado, mas a solução vinculada faria com que o servidor estivesse no sistema operacional host. Você provavelmente poderia refazê-lo para que o contrário funcione.
A menos que haja algum motivo para você não poder executar um servidor SSH no seu convidado, provavelmente é mais fácil usar o SSH para fazer login no seu convidado (permita que os programas SSH lidem com a conexão pela rede e com o gerenciamento dos ttys) e se anexe a (ou emita comandos para) o tmux residente dessa maneira:
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 no seu host para simplificar as linhas de comando ssh (ou seja, usando um pouco ssh guest
acima em vez de ssh -i guest-user1-key user1@guest-vm-ip
).