29

Я хочу иметь возможность запустить сеанс tmux на удаленном сервере, а затем использовать собственные окна iTerm2 и разделенные экраны на моей локальной машине.

Например, предположим, что на моем удаленном сервере запущен сеанс tmux с одним окном с двумя панелями. В iTerm2 на моем локальном компьютере я хочу две собственные панели iTerm2, чтобы каждая панель содержала разные панели tmux.

Это возможно?

(Я знаю, что возможно обратное - когда я могу запустить сеанс tmux на своем локальном компьютере, и другой компьютер увидит мои вкладки iTerm2 в качестве окон, например. Но это кажется бесполезным.)

2 ответа2

38

Да, это возможно, просто убедитесь, что:

  • Чтобы последняя версия tmux была установлена удаленно
  • Самая последняя версия iterm2 установлена локально

Авторизуйтесь через ssh login@hostname -t 'tmux -CC' и voilà - это должно открыть окно iTerm2 на вашем локальном ящике, зарегистрированном в удаленном ящике.

4

Вот что сработало для меня со стабильными версиями на 2015-12-16, а именно iTerm 2.1.4 для OS X 10.11.2 и tmux 1.9 для Raspbian Linux:

  1. Сначала используйте .ssh/config на вашем локальном компьютере и .ssh/authorized_keys на удаленном компьютере, чтобы настроить беспарольный вход в удаленную систему. Как только это будет правильно настроено, вы сможете войти в систему, просто выполнив команду ssh pi (предположим, что pi - это имя хоста вашей удаленной системы).

  2. Создайте новый профиль iTerm2, который вместо входа в локальную оболочку вызывает только ssh pi для входа на удаленный компьютер. Чтобы настроить это, перейдите: Preferences / Profiles / + / Command.Command = "ssh pi"

  3. Откройте окно iTerm2 для удаленного компьютера через новый профиль, выполнив: Профили / Pi.

  4. В окне удаленного входа iTerm2 в командной строке выполните: tmux -CC . После этого ваше окно iTerm2 показывает режим команд tmux, tmux создает новый сеанс, и iTerm2 немедленно создает новое окно iTerm2 для этого сеанса tmux. В этом новом окне iTerm2 начальная вкладка iTerm2 представляет одно окно tmux этого сеанса. Если вы выполните CMD-T, это создаст новую вкладку iTerm2, представляющую новое окно tmux.

Как вы используете это?

  • На этом этапе вы можете выполнить «Shell / tmux / Dashboard», чтобы наблюдать за пониманием iTerm2 существующих сеансов и окон tmux.

  • Если вы закроете окно iTerm2, представляющее сеанс tmux, оно уничтожит базовый сеанс и все его окна tmux.

  • Если вы закроете окно iTerm2, в котором отображается командный режим tmux, то, похоже, он просто убивает экземпляр клиента tmux, который был подключен к этому сеансу, поэтому оба окна iTerm2 исчезают, но сеанс tmux все еще жив, и вы можете повторно присоединиться к Это.

  • Если вы хотите более аккуратно отсоединиться от tmux, просто выполните ESC в окне командного режима tmux.

  • Если вместо создания нового сеанса tmux изначально вы хотели присоединить существующий сеанс, то это можно сделать с tmux -CC attach .

Теоретически, я думаю, что должен быть способ настроить iTerm2 или tmux, чтобы при подключении к удаленной системе вы автоматически подключались к любому существующему сеансу tmux, но я не смог заставить это работать, изменив командную строку в профиль iTerm2.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .