2012-08-28 14:29:59 +0000 2012-08-28 14:29:59 +0000
273
273

Como saio de uma ligação SSH?

Estou a ligar-me a um servidor via SSH para enviar uma mensagem a um servidor socket usando um comando como:

ssh 181.169.1.2 -p 5566

Depois da ligação estar estabelecida e eu escrevo a mensagem e envio-a não consigo sair do modo texto. Só me é permitido introduzir mais texto e pronto.

Existe algum comando ou combinação de teclas que me permita voltar ao modo de comando?

Respostas (7)

294
294
294
2013-07-17 09:26:09 +0000

Resposta curta: Tipo exit

Se isso não funcionar, no entanto…

SSH Escape Character and Disconnect Sequence

A maioria das implementações SSH implementam um carácter de fuga para sessões interactivas, semelhante à combinação telnet’s Ctrl-]. O carácter de fuga padrão do SSH é ~, introduzido no início de uma linha.

Se pretende terminar uma sessão interactiva OpenSSH ** que está presa e não pode sair entrando no exit ou CtrlD numa shell do lado remoto** , pode entrar no ~ seguido de um ponto .. Para ter a certeza de introduzir o carácter de fuga no início de uma linha de entrada, deve premir primeiro Enter. Assim, a sequência seguinte terminará na maioria dos casos uma sessão SSH:

Enter~.

Outras Sequências de Fuga

OpenSSH, por exemplo, oferece outras sequências de fuga para além de ~.. A entrada de ~? durante uma sessão deve dar-lhe uma lista. Alguns exemplos:

  • ~ seguiu Ctrl-Z suspende a sessão,
  • ~& coloca-o directamente em segundo plano,
  • ~# dá uma lista de ligações reencaminhadas nesta sessão.
  • Se quiser simplesmente introduzir um til no início de uma linha, tem de o duplicar: ~~.

O carácter de escape pode ser alterado utilizando a opção de linha de comando -e. Se você definir o valor especial -e none, o escape é desabilitado e a sessão é totalmente transparente.

Veja também a página de manual do OpenBSD em ssh (que é referenciada de www.openssh.org ) sob a opção de linha de comando -e

195
195
195
2017-09-16 21:57:26 +0000

Como saio de uma ligação SSH?

Duas maneiras:

  • fechando a sessão da shell, por exemplo com exit seguido de Enter, ou Ctrl-d normalmente permite-lhe sair da sessão ssh normalmente,
  • no caso de ter uma má ligação e a shell não responder, carregue na tecla Enter, depois digite ~. e ssh deve fechar imediatamente e devolvê-lo ao seu prompt de comando.

A primeira opção deve ser intuitiva, mas como é que conhecemos a última opção?

Podemos aprender esta informação a partir de uma leitura cuidadosa da página man.

$ man ssh

dá-nos a documentação SSH , que tem a seguinte secção sobre caracteres de escape:

ESCAPE CHARACTERS
     When a pseudo-terminal has been requested, ssh supports a number of
     functions through the use of an escape character.

     A single tilde character can be sent as ~~ or by following the tilde by
     a character other than those described below. The escape character
     must always follow a newline to be interpreted as special. The escape
     character can be changed in configuration files using the EscapeChar
     configuration directive or on the command line by the -e option.

     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 if the peer sup‐
             ports 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 port-forwardings with
             -KL[bind_address:]port for local, -KR[bind_address:]port for
             remote and -KD[bind_address:]port for dynamic port-forwardings.
             !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 if the peer
             supports it).

     ~V Decrease the verbosity (LogLevel) when errors are being written
             to stderr.

     ~v Increase the verbosity (LogLevel) when errors are being written
             to stderr.
32
32
32
2012-08-28 18:37:35 +0000

Quer sair do invólucro SSH?

Pode digitar exit e pressionar Enter, ou usar Ctrl+D

11
11
11
2014-04-14 15:00:24 +0000

Basta digitar exit ou logout (depois carregue em Enter, claro) e ambos funcionarão.

8
8
8
2016-06-14 22:26:47 +0000

Estas são as personagens suportadas que fornecem várias opções com as quais pode jogar com ssh.

Sequências de fuga suportadas:

~. - terminate session

 ~B - send a BREAK to the remote system

 ~R - Request rekey (SSH protocol 2 only)

 ~# - list forwarded connections

 ~? - this message

 ~~ - send the escape character by typing it twice

(Note que as fugas só são reconhecidas imediatamente após uma nova linha.) Pode fechar a lista de sequências de fuga premindo Enter.

3
3
3
2013-07-17 07:12:49 +0000

Pode escrever logout na linha da consola (e carregar em Enter, claro).

1
1
1
2018-03-29 17:25:28 +0000

MacOS : quando ssh pendurado utilizar a seguinte sequência:

ENTER 
SHIFT+`
.

onde: shift+`* produz ~ (até caracteres)