Existe uma maneira de voltar atrás em todas as conexões SSH e fechar o PuTTY em "one shot"? Eu trabalho no Windows 7 e uso PuTTY para SSH para 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 acima, alguma maneira de passar do host8 para fechar o PuTTY de uma só vez? Às vezes me encontro com 5 ou 10 hosts de profundidade. Sei que posso clicar no X para fechar a janela PuTTY, mas gosto de garantir que minhas conexões SSH sejam fechadas corretamente usando o comando exit. Também percebo que estou pedindo dicas sobre como aumentar a preguiça. Vou escrever como "como posso ser mais eficiente".
ctrl+d
várias vezes?Respostas:
Tente usar a
ssh
sequência de escape da terminação da conexão.Na
ssh
sessão, insira~.
(til ponto). Você não verá os caracteres ao digitá-los, mas a sessão será encerrada imediatamente.A partir de
man 1 ssh
fonte
~.
um apelido ou função? Só para dar um nome fácil de lembrarexitall
. Agora estou pedindo demais :). Eu tentei algumas coisas,~/.bashrc
mas entendo-bash: ~.: command not found
. Suponho que o bash o veja como uma string e não como uma sequência de escape vinda diretamente do teclado.ctrl+d
solução, mas isso responde mais diretamente à minha pergunta. Obrigado a todos.~.
, é tratado porssh
si só.ssh
cliente CLI precisa dessa técnica porque é CLI. O PuTTY é um aplicativo de GUI e existem maneiras muito mais amigáveis de fazer essas coisas em uma GUI.Basta pressionar CtrlDe você será desconectado, mantendo pressionada a tecla ctrl e pressione "d" até a janela desaparecer.
fonte
EOT
. E atébash
o ignorará no meio de uma linha de comando. Experimente você mesmo: digite uma única letra e tenteCtrl-D
.logout
.Basta fechar o PuTTY. ( Alt+ F4por padrão IIRC.)
fonte
Outra maneira é fazer
function
parassh
:Infelizmente, ele também sempre fechará a conexão e o logout do console depois que você terminar o trabalho no sistema remoto.
Observe que você precisa fazer essa função em todos os seus servidores, caso contrário, esse hack não funcionará. Mas você sempre pode colocar a função em ~ / .bashrc ou ~ / .whatever_shell_you_use_rc.
Parece um hack um pouco sujo em comparação com o jeito de uther.
fonte
function
não é POSIX - basta remover a palavra-chave e é necessário citar$@
corretamente, ou seus argumentos serão passados após a divisão de palavras (incorreta).Ou você pode usar
exec
para substituir seu processo de shellssh
ao pular para outro host:5 níveis de profundidade não são bonitos, pois o tráfego passará por todos os outros servidores. Por isso, não recomendo apenas matar o PuTTY ou o ssh (~.), Pois (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 do mouse na barra de título de massas e agiliza a abertura de uma nova sessão. Se você possui um servidor "padrão" e aceita 1 salto, o recurso "Sessão duplicada" é muito útil. Especialmente ao usar a autenticação pubkey.
fonte
Se você não se importa em criar um pouco de script, pode fazer isso.
Script: myssh.sh
Ligue através do comando dot:
Se você deseja sair de um nível:
Se você deseja sair de todos:
fonte
Digitar logout na janela do terminal do putty faz isso por mim:
Fecha a conexão ssh e fecha o aplicativo Putty.
fonte
ssh host1
e, a partir dehost1
, fazssh host8
. Nesse ponto, alogout
faria o mesmo que oexit
comando que eles já conhecem - saiahost8
e coloque-os novamentehost1
.