Qual é a diferença entre ~. (til ponto) e "sair" ao sair de uma conexão SSH

12

Sempre que tenho uma conexão X11 em segundo plano em uma sessão SSH, devo usar ~.e não exitsair da sessão ssh.

Qual é a diferença aqui? Posso sempre usar a sequência de escape ~.?

Hải Phong
fonte

Respostas:

7

exitdiz ao seu shell atual para sair. Como (quando não há uma conexão em túnel, por exemplo, X11, ativa), isso significa que o processo que o sshd chamou no lado do servidor saiu, o SSH se desconecta.

~. é a sequência de escape "mágica" que o SSH captura e desconecta imediatamente (incluindo o túnel X11).

Portanto, não, estes não são intercambiáveis. Se você deseja que seu shell remoto (ou qualquer programa que esteja sendo executado remotamente) saia normalmente, você deve finalizá-lo de acordo.

Marcus Müller
fonte
5

Já está bem descrito na outra resposta, mas gostaria de acrescentar alguns antecedentes:

Hoje, a conexão SSH única pode conter várias sessões (suas conchas, comando), canais de encaminhamento TCP e canais de encaminhamento X11 . E aí vem a diferença:

  • A gravação exit(ou Ctrl+ D) interrompe o canal da sessão , mas se houver alguns canais X11 ativos (por exemplo, gvimdeixa várias conexões com o servidor X que manipula a área de transferência e o título , que não é fechado por exit). A gravação exitdeixará o aplicativo X11 em execução e o terminal "travará" até que seja fechado.

  • Escrever ~.rasga toda a conexão . Você pode perceber que, se você executar algum aplicativo X11, ele também será fechado quando você escrever ~..

Jakuje
fonte