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

Jak wyjść z połączenia SSH?

Łączę się z serwerem przez SSH, aby wysłać wiadomość do serwera gniazdek za pomocą komendy:

ssh 181.169.1.2 -p 5566

Po nawiązaniu połączenia i napisaniu wiadomości i wysłaniu jej nie mogę wyjść z trybu tekstowego. Mogę tylko wpisać więcej tekstu i to wszystko.

Czy istnieje komenda lub kombinacja klawiszy, która pozwala mi wrócić do trybu komend?

Odpowiedzi (7)

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

Krótka odpowiedź: Type exit

If that doesn’t work, however…

SSH Escape Character and Disconnect Sequence

Most SSH implementations implement an escape character for interactive sessions, similar to telnet’s combination Ctrl-]. Domyślnym znakiem escape SSH jest ~, wpisywany na początku linii.

Jeśli chcesz zakończyć interaktywną sesję OpenSSH , która utknęła i nie może zostać zakończona przez wpisanie exit lub CtrlD do powłoki po stronie zdalnej , możesz wpisać ~, a następnie kropkę .. Aby mieć pewność, że na początku wiersza wejściowego zostanie wpisany znak escape, należy najpierw wcisnąć Enter. Tak więc następująca sekwencja w większości przypadków zakończy sesję SSH:

Enter~.

Inne sekwencje escape

OpenSSH, na przykład, oferuje inne sekwencje escape oprócz ~.. Wpisanie ~? podczas sesji powinno dać Ci listę. Kilka przykładów:

  • ~ po Ctrl-Z zawiesza sesję,
  • ~& umieszcza ją bezpośrednio w tle,
  • ~# podaje listę przekierowanych połączeń w tej sesji.
  • Jeśli chcesz po prostu wpisać tyldę na początku linii, musisz ją podwoić: ~~.

Znak escape można zmienić za pomocą opcji -e z linii poleceń. Jeśli ustawimy wartość specjalną -e none, ucieczka jest wyłączona i sesja jest w pełni przezroczysta.

Zobacz również strona man OpenBSD na ssh (która jest powoływana z www.openssh.org ) pod opcją -e wiersza poleceń

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

Jak zakończyć połączenie SSH?

Dwa sposoby:

  • zamknięcie sesji powłoki, np. z exit, po którym następuje Enter, lub Ctrl-d zazwyczaj pozwala na normalne zakończenie sesji ssh,
  • w przypadku gdy masz złe połączenie i powłoka nie odpowiada, naciśnij klawisz Enter, następnie wpisz ~. i ssh powinien natychmiast się zamknąć i przywrócić komendę.

Pierwsza opcja powinna być intuicyjna, ale skąd znamy drugą opcję?

Moglibyśmy się tego dowiedzieć z uważnego przeczytania strony man.

$ man ssh

daje nam dokumentację SSH , która ma następującą sekcję dotyczącą znaków 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

Czy chcesz wyjść z powłoki SSH?

Możesz wpisać exit i wcisnąć Enter, lub użyć Ctrl+D

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

Po prostu wpisz exit lub logout (następnie naciśnij Enter oczywiście) oba będą działać.

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

Są to obsługiwane znaki, które zapewniają różne opcje, za pomocą których możesz grać z ssh.

Obsługiwane sekwencje ucieczki:

~. - 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

(Zauważ, że ucieczki są rozpoznawane tylko bezpośrednio po nowej linii) Możesz zamknąć listę sekwencji ucieczki, klikając Enter.

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

Możesz napisać logout w linii konsoli (i nacisnąć Enter oczywiście).

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

MacOS : kiedy ssh wisi użyj następującej kolejności:

ENTER 
SHIFT+`
.

gdzie: shift+` produkuje ~ (znak tyldy)