Você pode usar o Linux Screen para fazer o que você precisa. É uma boa ferramenta para trabalhar com:)
Eu costumo ter o hábito de trabalhar com terminal diferente apontando para o mesmo diretório, abrindo arquivos diferentes. Eu sshed um servidor de um dos meus terminais do Ubuntu e eu tive que fazer o mesmo para todos os meus terminais, existe uma maneira onde eu possa duplicar os terminais para que eu não precise se conectar em cada terminal? Obrigado, desculpe se isso é uma duplicata, parece ser uma pergunta muito comum.
Você pode usar o Linux Screen para fazer o que você precisa. É uma boa ferramenta para trabalhar com:)
Basta instalar byobu
, screen
ou tmux
no servidor. byobu
é recomendado, pois é um script de wrapper em torno de screen
(ou tmux
).
Estes são "gerenciadores de janelas de linha de comando" - com uma sessão SSH você pode abrir muitas "janelas", cada janela contendo um shell, você pode alternar entre elas e todo o software que você está executando ainda rodando mesmo se você desconectar.
Tente isso no servidor:
sudo apt-get install byobu
execute byobu
, pressione <F2>
para criar mais uma janela e <F3>
e <F4>
para navegar entre as janelas. Pressione <Ctrl> + a + d
para marcar sua sessão (todas as janelas continuarão funcionando) - se Byobu perguntar algo a você, responda que você deseja usar atalhos de teclado semelhantes a tela. Então, se você desconectar, reconectar e executar byobu
novamente, você estará na sua última sessão, com todas as janelas.
Obviamente, você também pode usar byobu
localmente e abrir apenas uma janela de terminal (ao invés de abas no seu aplicativo de terminal, como gnome-terminal
, você terá janelas dentro de byobu
).
Você pode clonar sua sessão SSH usando a opção ControlMaster no OpenSSH 4.0 (versões antigas não suportam isso). Confira este tutorial direto .
O tmux / screen está bom, mas é meio desconfortável ter vários terminais em um gerenciador de janelas em um terminal em um gerenciador de janelas, sendo o gerenciador interno de janelas o tmux / screen.
O que eu faço para isso é ter atalhos de teclado que lancem terminais que ssh para os sistemas aos quais eu mais me conecto. Então, por exemplo, pressionando Super + F5 executaria urxvt -e ssh common-server-1
.
Como eu tenho chaves configuradas para esses sistemas, eu só preciso inserir minha senha de descriptografia para o primeiro terminal, e ela fica armazenada em cache o tempo suficiente para iniciar outros terminais que vão imediatamente para o prompt do sistema remoto.
Para obtê-los rapidamente no mesmo diretório, faço uso do histórico do shell. O diretório que eu quero é tipicamente o último que eu fui, então eu apenas cd
Ctrl + p Enter e eu estou lá.