Ich möchte in der Lage sein, eine tmux-Sitzung auf einem Remote-Server zu starten und dann die systemeigenen Fenster und geteilten Bildschirme von iTerm2 auf meinem lokalen Computer zu verwenden.
Angenommen, auf meinem Remote-Server wird eine tmux-Sitzung mit einem Fenster mit zwei Fenstern ausgeführt. In iTerm2 auf meinem lokalen Computer möchte ich zwei native iTerm2-Bereiche, sodass jeder Bereich einen anderen tmux-Bereich enthält.
Ist das möglich?
(Ich weiß, dass das Gegenteil möglich ist - wobei ich eine tmux-Sitzung auf meinem lokalen Computer ausführen kann und ein anderer Computer meine iTerm2-Registerkarten zum Beispiel als Fenster ansieht. Dies scheint jedoch irgendwie nutzlos zu sein.)
ssh login@hostname -t 'tmux -CC attach'
Herstellen der Verbindung das Menü shell-> tmux-> dashboard in iterm2 zu verwenden und zu überprüfen.ssh login@hostname -t 'tmux -CC a -t sessionName'
Folgendes hat bei mir mit den stabilen Release-Versionen vom 16.12.2015 funktioniert: iTerm 2.1.4 unter OS X 10.11.2 und tmux 1.9 unter Raspbian Linux:
Verwenden Sie zunächst
.ssh/config
auf Ihrem lokalen Computer und.ssh/authorized_keys
auf Ihrem Remote-Computer, um die Anmeldung ohne Kennwort für das Remote-System zu konfigurieren. Sobald dies richtig konfiguriert ist, sollten Sie sich anmelden könnenssh pi
(vorausgesetzt, espi
handelt sich um den Hostnamen Ihres Remote-Systems).Erstellen Sie ein neues iTerm2-Profil, bei dem Sie sich nicht bei Ihrer lokalen Shell anmelden, sondern nur
ssh pi
bei der Remote-Maschine anmelden müssen. Um dies zu konfigurieren, gehen Sie zu: Preferences / Profiles / + / Command.Command = "ssh pi"Öffnen Sie über Ihr neues Profil ein iTerm2-Fenster für den Remote-Computer. Gehen Sie dazu wie folgt vor: Profile / Pi.
Im iTerm2 Remote - Login - Fenstern, in der Befehlszeile tun:
tmux -CC
. Danach zeigt Ihr iTerm2-Fenster den tmux-Befehlsmodus an, tmux erstellt eine neue Sitzung und iTerm2 erstellt sofort ein neues iTerm2-Fenster für diese tmux-Sitzung. Innerhalb dieses neuen iTerm2-Fensters repräsentiert die anfängliche iTerm2-Registerkarte das einzelne tmux-Fenster dieser Sitzung. Wenn Sie CMD-T ausführen, wird eine neue iTerm2-Registerkarte erstellt, die ein neues tmux-Fenster darstellt.Wie benutzt du das?
Zu diesem Zeitpunkt können Sie "Shell / tmux / Dashboard" ausführen, um das Verständnis von iTerm2 für die vorhandenen tmux-Sitzungen und -Fenster zu beobachten.
Wenn Sie das iTerm2-Fenster schließen, das die tmux-Sitzung darstellt, werden die zugrunde liegende Sitzung und alle tmux-Fenster beendet.
Wenn Sie das iTerm2-Fenster schließen, in dem der tmux-Befehlsmodus angezeigt wird, wird anscheinend nur die mit dieser Sitzung verbundene tmux-Client-Instanz beendet, sodass beide iTerm2-Fenster ausgeblendet werden, die tmux-Sitzung jedoch noch aktiv ist und Sie eine erneute Verbindung herstellen können es.
Wenn Sie eine geordnetere Trennung von tmux wünschen, tun Sie dies einfach
ESC
im tmux-Befehlsmodusfenster.Wenn Sie ursprünglich keine neue tmux-Sitzung erstellen wollten, sondern an eine vorhandene Sitzung anhängen möchten, können Sie dies mit tun
tmux -CC attach
.Theoretisch sollte es eine Möglichkeit geben, iTerm2 oder tmux so zu konfigurieren, dass Sie beim Herstellen einer Verbindung mit dem Remote-System automatisch mit einer vorhandenen tmux-Sitzung verbunden werden. Dies gelang mir jedoch nicht, indem Sie die Befehlszeile in ändern das iTerm2-Profil.
quelle
[[ $- == *i* && $SSH_TTY && -z $TMUX && ! -r ~/.notmux ]] && tmux attach-session && exit
in .bashrc (oder etwas, das von dort aufgerufen wird) Datei. Dasexit
am Ende schließt die Verbindung beim Beenden von tmux (meistens eine Trennung für mich).