Envie o comando tmux do remoto dentro da sessão ssh para a instância local

4

O objetivo é enviar o comando tmux para o tmux local em execução a partir do servidor remoto. não rodar em instâncias diferentes do tmux.

Dentro do tmux nós ssh para um servidor que não roda o tmux

local>tmux send-key C-p  # works
local>ssh user@remote
user@remote> tmux send-key C-p # this will try to find tmux instance on remote. but we want to send it the local instead.

Não consigo usar atalhos de teclado porque isso é executado dentro do script.

    
por Nabil Sham 05.11.2015 / 16:34

1 resposta

0

Nenhum Linux Distro ou versão foi especificado, então esta resposta assume uma versão relativamente nova do SSH.

Se o socket "default" do tmux estiver sendo usado no host local, mas não no host remoto, o tmux deve funcionar apenas encaminhando o socket unix do host remoto:

ssh -R/tmp/tmux-$UID/default:/tmp/tmux-${REMOTE_UID}/default remote

REMOTE_UID deve ser definido manualmente para o UID do usuário remoto, mas UID geralmente é definido automaticamente no ambiente.

Idealmente, um nome de soquete do tmux exclusivo (não padrão) deve ser escolhido para evitar conflitos:

local> tmux -L foo
remote> ssh -R/tmp/tmux-$UID/foo:/tmp/tmux-${REMOTE_UID}/foo remote
remote> tmux -L foo send-key C-p

Brincar com TMUX_TMPDIR environment pode proporcionar uma experiência mais transparente e refinada e contornar a necessidade de conhecer o UID, mas isso depende do requisito e pode ser um exagero apenas para um script.

    
por 10.05.2018 / 11:30

Tags