Como mudar temporariamente do ssh para o meu shell local?

12

Estou usando o cygwin. e use-o com ssh para fazer login em um servidor ubuntu. às vezes, quero voltar para o cygwin e depois mudar rapidamente para o ubuntu shell. Como fazer isso?

lovespring
fonte

Respostas:

21

Você pode fazer o segundo plano do cliente ssh como qualquer outro trabalho de shell, enviando um sinal e retornando ao shell pai. Como o cliente ssh intercepta a maioria dos pressionamentos de tecla, ele pegaria os pressionamentos de tecla normais do controle de tarefas do shell, mas você pode chamar sua atenção e acessar o shell usando uma sequência de escape. Para a maioria dos clientes ssh, isso envolve o envio de um ~que foi precedido diretamente por uma nova linha. A seguinte sequência deve fazer o trabalho:

Enter ~ Ctrl+Z

Depois de suspenso, você pode continuar usando o shell local. Quando você quiser voltar ao trabalho suspenso, basta executar o fgcomando

Para uma leitura mais aprofundada, consulte Bash Job Control .

Caleb
fonte
3
Agradável; me derrote. Para mais leituras, execute man sshe procure por "Caracteres de escape" ou digite ~?uma sessão ssh.
Jander
3

A resposta de @ Caleb é boa, mas você também pode considerar instalar um multiplexador de terminal como screenou tmux. Aparentemente (de acordo com o que posso encontrar na web) tmux, tive alguns problemas com a execução no Cygwin no passado, mas não sei o status atual dele.

Kusalananda
fonte
2
Ambos tmuxe screencertamente podem ser usados ​​para resolver o problema que o OP está enfrentando, mas começar com um multiplexador é um monte de coisas para você entender pela primeira vez. Talvez você poderia expandir esta resposta a um conjunto exato de comandos para tmuxque obter um recém-chegado através do processo de abertura de um terminal, ssh'ing, detatching de volta para o shell principal, em seguida, anexar novamente ...
Caleb