Возможно ли совместное использование сокетов tmux между хостами?

11

Мне интересно, возможно ли разделить сокет сервера tmux между разными хостами. Например, у меня на хосте запущена виртуальная машина (гость), и я запускаю сеанс tmux в госте, возможно ли, чтобы мой хост получил доступ к сеансу tmux гостя и делал с ним классные вещи? (например, отправка команд на сеанс гостя)?

EnToutCas
источник

Ответы:

10

В списке рассылки tmux-users появилась похожая тема : Попытка использовать socat для туннелирования сокета tmux.

Резюме:

  • Простая пересылка внутриполосного диалога через сокет между клиентом tmux и его сервером не будет работать, потому что tmux использует передачу дескриптора файла (клиент передает свой tty fd на сервер).
    • Можно было бы разработать специализированный прокси-сервер, но, похоже, это было бы нетривиально - ему нужно было бы знать достаточно протокола сокета tmux , чтобы знать, когда принимать и отправлять fds, и для этого нужен метод прокси FDS и любые операции, выполненные на этих FDS.
  • Постеру списка рассылки удалось разработать систему пересылки tmux с использованием socat, который в основном работал .
    • Вы могли бы задать другой начальный терминальный размер, давая -xи -yварианты new-session, но это будет не исправить обработку изменения размера ( Сокат должны были бы ручки и вперед SIGWINCH (через TIOCGWINSZ / TIOCSWINSZ IOCTLs)).
    • Похоже, вы хотите, чтобы ваш «сервер пересылки» был в вашей гостевой ОС, но связанное решение заставит сервер быть в вашей хост-ОС. Вы могли бы, вероятно, переделать его, чтобы все было наоборот.

Если нет какой-либо причины, по которой вы не можете запустить сервер SSH на своем госте, возможно, проще использовать SSH для входа в систему вашего гостя (пусть программы SSH обрабатывают подключение по сети и управление ttys) и подключаться к ним (или выдавать команды) к) резидент tmux таким образом:

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

Вы можете создать ключ SSH и ~/.ssh/configзаписи на вашем хосте, чтобы упростить командные строки ssh (то есть, используя чуть ssh guestвыше вместо ssh -i guest-user1-key user1@guest-vm-ip).

Крис Джонсен
источник
Интересно, можно ли это теперь построить с использованием режима управления tmux
mndrix