Aqui está o que funcionou para mim, com as versões de lançamento estável a partir de 2015-12-16, que são o iTerm 2.1.4 no OS X 10.11.2 e o tmux 1.9 no Linux Raspbian:
-
Primeiro, use .ssh/config
em sua máquina local e .ssh/authorized_keys
em sua máquina remota para configurar o login sem senha no sistema remoto. Uma vez que isto esteja configurado corretamente, você deve ser capaz de fazer o login apenas fazendo ssh pi
(supondo que pi
seja o nome do host do seu sistema remoto).
-
Crie um novo perfil iTerm2 que, em vez de fazer um login no seu shell local, só chama ssh pi
para acessar a máquina remota. Para configurar isso, vá em: Preferences / Profiles / + / Command.Command="ssh pi"
-
Abra uma janela iTerm2 na máquina remota através do seu novo perfil, fazendo: Profiles / Pi.
-
Na janela de login remoto do iTerm2, na linha de comando, faça: tmux -CC
. Depois disto, a sua janela iTerm2 mostra o modo de comando tmux, o tmux cria uma nova sessão e o iTerm2 cria imediatamente uma nova janela iTerm2 para essa sessão tmux. Dentro dessa nova janela iTerm2, o separador inicial iTerm2 representa a única janela tmux dessa sessão. Se você fizer o CMD-T, isso criará uma nova aba do iTerm2, representando uma nova janela do tmux.
Como você usa isso?
-
Neste ponto você pode fazer "Shell / tmux / Dashboard" para observar o entendimento do iTerm2 das sessões e janelas tmux existentes.
-
Se você fechar a janela do iTerm2 representando a sessão do tmux, ele mata a sessão subjacente e todas as janelas do tmux.
-
Se você fechar a janela do iTerm2 mostrando o modo de comando do tmux, parecerá apenas matar a instância do cliente tmux que estava conectada a essa sessão, portanto ambas as janelas do iTerm2 desaparecem, mas a sessão do tmux ainda está ativa e você pode voltar a anexá-lo.
-
Se você deseja um desanexamento mais ordenado do tmux, faça apenas ESC
dentro da janela do modo de comando do tmux.
-
Se em vez de criar uma nova sessão do tmux, o que você queria originalmente era anexar a uma sessão existente, então você pode fazer isso com tmux -CC attach
.
Em teoria, acho que deveria haver uma maneira de configurar o iTerm2 ou o tmux para que, quando você se conecta ao sistema remoto, seja automaticamente anexado a qualquer sessão tmux existente, mas não consegui fazer isso funcionar modificando linha de comando no perfil do iTerm2.