Abra outra janela de terminal com a mesma sessão SSH da janela original

42

Existe uma maneira de abrir uma janela (ou guia) do terminal com outra instância de uma sessão SSH aberta?

EDIT: Eu tenho uma janela de terminal com uma sessão ssh remota em um servidor. Quero abrir uma nova guia conectada à mesma sessão ssh remota.

Com Arquivo-> Nova Guia , recebo outra guia, mas tenho que abrir outra sessão ssh no servidor remoto.

Tulains Córdova
fonte
Se você usar ssh-copy-id e uma configuração SSH local, conectar-se a yourwebserver.company.net é como 'ssh web', mesmo sem necessidade de autenticação.
Davidbaumann
@davidbaumann O comentário é muito conciso. Você poderia elaborar uma resposta? O que é 'ssh web'? Como isso possibilita abrir uma nova janela de terminal com a mesma sessão que?
Tulains Córdova
Não é a mesma sessão, mas a conexão via SSH será muito mais fácil. Você não precisará de outros truques.
Davidbaumann
@davidbaumann, mesma sessão significa o mesmo usuário (se você su - someuser), as mesmas variáveis ​​de ambiente (se você originou um arquivo src), o mesmo diretório de trabalho, o mesmo histórico, etc. Conectar sem ser solicitada uma senha é bom, mas não é ' Não faça todo o resto.
Tulains Córdova

Respostas:

14

Conecte-se ao seu servidor remoto com:

ssh -X [remote-host]      

Agora execute:

gnome-terminal &

Um terminal aparecerá no seu computador local. Nesse terminal, você pode executar quantas guias ou janelas de terminal desejar. Todos eles usarão a mesma sshconexão e serão conectados à máquina remota.

LD James
fonte
O host remoto é o Debian e não possui o gnome-terminal. Qual é o nome do aplicativo de terminal no Debian?
Tulains Córdova
1
@ user1598390 Na minha instalação, (Version 7 - wheezy)o aplicativo de terminal padrão é o gnome-terminal. Existem outras aplicações de terminal instaladas. Eles são xterm, lxterme uxterm. Eu acredito que o mais comum na maioria das distros será xterm. Você pode obter uma lista dos aplicativos do terminal com a linha de comando cd /usr/bin;ls *term*.
LD James
1
Eu tentei e não funciona para mim.
Tulains Córdova
Qual é a mensagem de erro que você recebe quando executa cd /usr/bin;ls *term*? Em outras palavras, qual é o CLI que você executou e qual foi a mensagem de erro?
LD James
O erro ocorre ao executar xterm&-> [1] 26953 postgres@serverxxx:/usr/bin$ X11 connection rejected because of wrong authentication. xterm: Xt error: Can't open display: localhost:10.0Embora eu tenha executado xhost +na máquina local. E mesmo quando eu fizssh -X
Tulains Córdova
36

Talvez isso possa ajudar: screen

Não é instalado por padrão no Ubuntu, mas é fornecido nos repositórios.

É muito útil: sshpara um host remoto e digite screenpara entrar em uma screensessão.

Inicie a tarefa que você consome tempo e, em seguida, pressione Ctrl+ Aseguido de Ctrl+ Cpara criar uma nova janela na sessão da tela.

Isso gerará um novo shell, onde você poderá fazer o que quiser. Crie ainda mais janelas usando o mesmo comando.

Para alternar entre duas janelas rapidamente, use Ctrl+ Aseguido por Ctrl+ Anovamente. Como você pode ver, Ctrl+ Acoloca a tela no modo de comando.

Ctrl+ A Ctrl+ Dserá desconectado da sessão da tela. Você pode desconectar-se do host e efetuar login novamente mais tarde e usá-lo screen -drpara continuar sua sessão.

Para ir para uma screenjanela específica , digite Ctrl+ Aseguido de um número.

A tela será fechada quando todas as janelas ativas estiverem fechadas (ou quando as conchas tiverem saído).

Compreendi isso nas sessões SSH e SFTP .

Editar-

O tmux é uma alternativa para a tela. http://www.sitepoint.com/tmux-a-simple-start/

aaditya1234
fonte
A "tela" não precisa ser instalada no host remoto?
Tulains Córdova
Suponho que sim.
aaditya1234
Eu tenho que me conectar a muitos servidores de produção : servidores Solaris (novas versões e versões legadas), servidores Debian (várias versões) e servidores RedHat (várias versões). Ter que instalar um novo software em todos eles está fora de questão.
Tulains Córdova
Ah, aqui é algo que um amigo me contou sobre como ele consegue várias instalações de máquinas: bjoernvold.com/forum/viewtopic.php?f=11&t=3228
aaditya1234
1
Quando uso a tela, não consigo rolar para cima e para baixo, enquanto posso rolar para cima e para baixo na linha de comando normal (a que obtive logo após fazer ssh user@machine).
ComputerScientist
0

Eu fiz isso antes: Inicie o gnome-terminal no servidor. ctrl + Z e bg na janela do terminal original.

Eu normalmente uso ssh -X -C, então você pode precisar fazer isso, mas não tenho certeza. Além disso, ele usará as configurações do servidor em vez das da sua máquina, o que às vezes é inconveniente.

não é minha culpa
fonte
-2

Sim, no terminal (menu), clique em Arquivo -> Nova guia

abrir nova aba no terminal

ou você está pedindo outra coisa?

aaditya1234
fonte
Talvez eu não tenha sido claro o suficiente. Eu tenho uma janela de terminal com uma sessão ssh remota em outro servidor. Quero abrir uma nova guia conectada à mesma sessão ssh remota. Veja a edição na pergunta.
Tulains Córdova
ok .. esqueceu sua pergunta. procurarei a resposta como eu ainda não a conheço.
precisa saber é o seguinte
Alguns terminais proprietários para Windows fazem isso. Mas eu prefiro usar o terminal do Ubuntu.
Tulains Córdova