Czy możliwe jest współdzielenie gniazd Tmux między hostami?

11

Zastanawiam się, czy można współużytkować gniazdo serwera tmux między różnymi hostami. Na przykład, mam maszynę wirtualną (gościa) uruchomioną na moim hoście i prowadzę sesję tmux na gościu, czy moja maszyna hosta ma dostęp do sesji tmux gościa i robi z nią fajne rzeczy? (np. wysyłanie poleceń do sesji gościa)?

EnToutCas
źródło

Odpowiedzi:

10

Podobny temat pojawił się na liście dyskusyjnej tmux-users : Próba użycia socat do tunelowania gniazda tmux

Podsumowanie:

  • Po prostu przekazywanie wewnątrz-pasmowego dialogu ponad klientem między klientem tmux a jego serwerem nie będzie działać, ponieważ tmux używa przekazywania deskryptora pliku (klient przekazuje tty fd na serwer).
    • Opracowanie wyspecjalizowanego serwera proxy może być możliwe, ale wygląda na to, że byłoby to nietrywialne - musiałoby znać wystarczająco dużo protokołu gniazda tmux , aby wiedzieć, kiedy przyjąć i wysłać fds, i potrzebowałby metody proxy fds i wszelkie operacje wykonane na tych fds.
  • Plakatowi z listą mailingową udało się wypracować system przekazywania tmux przy użyciu socat, który w większości działał .
    • Prawdopodobnie można ustawić inny początkowy rozmiar terminala, podając opcje -xi , ale nie naprawi to obsługi zmiany rozmiaru ( socat będzie musiał obsługiwać i przesyłać dalej SIGWINCH (przez ioctls TIOCGWINSZ / TIOCSWINSZ)).-ynew-session
    • Wygląda na to, że możesz chcieć, aby Twój „serwer przekazujący” znajdował się w systemie-gościu, ale połączone rozwiązanie sprawiłoby, że serwer byłby w systemie hosta. Prawdopodobnie mógłbyś to przerobić, aby działało na odwrót.

O ile nie istnieje jakiś powód, dla którego nie możesz uruchomić serwera SSH na swoim gościu, prawdopodobnie łatwiej jest użyć SSH do zalogowania się do twojego gościa (pozwól programom SSH obsługiwać łączenie się przez sieć i zarządzanie ttys) i dołączania się (lub wydawania poleceń do) rezydentnego tmux w ten sposób:

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

Możesz utworzyć klucz SSH i ~/.ssh/configwpisy na swoim hoście, aby uprościć wiersze poleceń ssh (tj. Używając nieco ssh guestpowyżej zamiast ssh -i guest-user1-key user1@guest-vm-ip).

Chris Johnsen
źródło
Zastanawiam się, czy można to teraz zbudować przy użyciu trybu sterowania
tmux