sai de todas as conexões SSH em um comando e fecha o PuTTY

17

Existe uma maneira de sair de todas as conexões SSH e fechar PuTTY em "um tiro"? Eu trabalho no Windows 7 e uso o PuTTY para SSH em vários hosts Linux.

Um exemplo da maneira como me vejo trabalhando:

SSH to host1 with PuTTY...
banjer@host1:~> #...doin some work...ooh! need to go check something on host8...
banjer@host1:~> ssh host8
banjer@host8:~> #...doin some work...OK time for lunch. lets close putty...
banjer@host8:~> exit
banjer@host1:~> exit
Putty closes.

Por cima, alguma maneira de ir de host8 para fechar PuTTY em um tiro? Às vezes eu me encontro até 5 ou 10 hosts em profundidade. Eu percebo que posso clicar no X para fechar a janela do PuTTY, mas eu gostaria de ter certeza de que minhas conexões SSH serão fechadas corretamente usando o comando exit. Eu também percebo que estou pedindo dicas sobre como aumentar a preguiça. Vou escrever como "como posso ser mais eficiente".

    
por Banjer 26.06.2012 / 18:42

7 respostas

28

Tente usar a sequência de escape de terminação de conexão ssh .

Na sessão ssh , insira ~. (tilde dot). Você não verá os caracteres quando os digitar, mas a sessão será encerrada imediatamente.

$ ~.
$ Connection to me.myhost.com closed.  

De man 1 ssh

The supported escapes (assuming the default ‘~’) are:
 ~.      Disconnect.
 ~^Z     Background ssh.
 ~#      List forwarded connections.
 ~&      Background ssh at logout when waiting for forwarded 
         connection / X11 sessions to terminate.
 ~?      Display a list of escape characters.
 ~B      Send a BREAK to the remote system (only useful for SSH protocol
         version 2 and if the peer supports it).
 ~C      Open command line.  Currently this allows the addition of port 
         forwardings using the -L, -R and -D options (see above). It also
         allows the cancellation of existing remote port-forwardings using 
         -KR[bind_address:]port.  !command allows the user to execute a 
         local command if the PermitLocalCommand option is enabled in
         ssh_config(5).  Basic help is available, using the -h option.
 ~R      Request rekeying of the connection (only useful for SSH protocol 
         version 2 and if the peer supports it).
    
por 26.06.2012 / 18:57
11

Basta pressionar Ctrl D e ele fará o logout dele para pressionar ctrl e pressionar "d" até a janela desaparecer.

    
por 26.06.2012 / 20:22
8

Simplesmente feche o PuTTY. ( Alt + F4 por padrão IIRC.)

    
por 27.06.2012 / 00:22
2

Outra maneira é tornar function para ssh :

   function ssh(){ /usr/bin/ssh $@ ; exit ; } 

Infelizmente, ele também sempre fechará a conexão e o logout do console depois que você terminar o trabalho no sistema remoto.

Note que você precisa fazer essa função em todos os seus servidores, caso contrário, este hack não funcionará. Btw você sempre pode colocar a função em ~ / .bashrc ou ~ / .whatever_shell_you_use_rc.

Parece um pouco sujo, comparando com o caminho do uther.

    
por 26.06.2012 / 18:58
2

Se você não se importa de escrever um pouco de script, pode fazer isso.

Script: myssh.sh

#!/bin/bash
ssh $1
if [ $? -eq 5 ]; then
 exit 5
fi

Ligue através do comando dot:

$ . myssh [email protected]

Se você quiser sair de um nível:

$ exit

Se você quiser sair de tudo:

$ exit 5
    
por 07.11.2012 / 00:16
1

Ou você pode usar exec para substituir seu processo de shell por ssh ao saltar para outro host:

SSH to host1 with PuTTY...
banjer@host1:~> #...doin some work...ooh! need to go check something on host8...
banjer@host1:~> exec ssh host8
banjer@host8:~> #...doin some work...OK time for lunch. lets close putty...
banjer@host8:~> exit
Putty closes.

5 níveis de profundidade não é bonito, já que o tráfego passará por todos os outros servidores. Por causa disso, eu não recomendo apenas matar o PuTTY ou o ssh (~.), Já que (dependendo do que você faz) isso pode resultar em processos órfãos nos servidores.

Melhor tentar e ser menos "preguiçoso". Clique com o botão direito na barra de título do puttys para abrir uma nova sessão rapidamente. Se você tiver um servidor "padrão" e aceitar um salto, o recurso "Duplicate Session" será muito útil. Especialmente ao usar a autenticação pubkey.

    
por 27.06.2012 / 10:23
-1

Digitar o logout na janela do terminal de putty faz isso por mim:

richard@forevermore:~ > logout

Fecha a conexão ssh e encerra o aplicativo Putty.

    
por 02.11.2017 / 07:32