it-swarm.com.de

Wie kann ich eine SSH-Verbindung beenden?

Ich verbinde mich über SSH mit einem Server, um eine Nachricht mit einem Befehl wie dem folgenden an einen Socket-Server zu senden:

ssh 181.169.1.2 -p 5566

Nachdem die Verbindung hergestellt wurde und ich die Nachricht geschrieben und gesendet habe, kann ich den Textmodus nicht verlassen. Ich darf nur mehr Text eingeben und das wars.

Gibt es einen Befehl oder eine Tastenkombination, mit der ich in den Befehlsmodus zurückkehren kann?

220
Andreea

Wie kann ich eine SSH-Verbindung beenden?

Zwei Wege:

  • schließen der Shell-Sitzung, z. mit exit gefolgt von Enter, oder Ctrl-d In der Regel können Sie die Sitzung ssh normal beenden.
  • wenn Sie eine schlechte Verbindung haben und die Shell nicht reagiert, drücken Sie die Taste Enter Geben Sie dann ~. ein und ssh sollte sofort geschlossen werden und Sie zu Ihrer Eingabeaufforderung zurückkehren.

Die erste Option sollte intuitiv sein, aber woher kennen wir die letztere Option?

Wir könnten diese Information aus einem sorgfältigen Lesen der Manpage lernen.

$ man ssh

gibt uns die SSH-Dokumentation , die den folgenden Abschnitt über Escape-Zeichen enthält:

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.
131
Aaron Hall

Kurze Antwort: Geben Sie exit ein.

Wenn das aber nicht geht ...

SSH-Escape-Zeichen und Trennsequenz

Die meisten SSH-Implementierungen implementieren ein Escapezeichen für interaktive Sitzungen, ähnlich der Kombination Ctrl-] von Telnet. Das Standard-SSH-Escapezeichen ist ~, das am Anfang einer Zeile eingegeben wird.

Wenn Sie eine interaktive OpenSSH-Sitzung beenden möchten, die blockiert ist und nicht durch Eingabe von exit oder __ beendet werden kann CtrlD In eine Shell auf der Remote-Seite können Sie ~ gefolgt von einem Punkt . eingeben. Um das Escape-Zeichen am Anfang einer Eingabezeile einzugeben, müssen Sie zuerst die Eingabetaste drücken. Die folgende Sequenz beendet in den meisten Fällen eine SSH-Sitzung:

Enter~.

Andere Escape-Sequenzen

OpenSSH bietet zum Beispiel neben ~. noch andere Escape-Sequenzen an. Wenn Sie während einer Sitzung ~? eingeben, sollten Sie eine Liste erhalten. Einige Beispiele:

  • ~ folgt Ctrl-Z unterbricht die Sitzung,
  • ~& stellt es direkt in den Hintergrund,
  • ~# gibt eine Liste der weitergeleiteten Verbindungen in dieser Sitzung an.
  • Wenn Sie einfach eine Tilde am Anfang einer Zeile eingeben möchten, müssen Sie sie verdoppeln: ~~.

Das Escape-Zeichen kann mit der Befehlszeilenoption -e geändert werden. Wenn Sie den speziellen Wert -e none festlegen, wird die Escape-Funktion deaktiviert und die Sitzung ist vollständig transparent.

Siehe auch die OpenBSD-Manpage auf ssh (auf die von www.openssh.org verwiesen wird) unter der Befehlszeilenoption -e

271
Dubu

Möchten Sie die SSH-Shell beenden?

Sie können exit eingeben und drücken Enteroder verwenden Ctrl+D

Geben Sie einfach exit oder logout ein (drücken Sie dann natürlich die Eingabetaste), beide funktionieren.

11
octa

Dies sind die unterstützten Zeichen, die verschiedene Optionen bieten, mit denen Sie mit ssh herumspielen können.

Unterstützte Escape-Sequenzen:

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

(Beachten Sie, dass Escape-Zeichen erst unmittelbar nach einer neuen Zeile erkannt werden.) Sie können die Liste der Escape-Zeichenfolgen schließen, indem Sie auf klicken Enter.

4
0_o

Sie können logout in die Konsolenzeile schreiben (und drücken Enter Na sicher).

4
Etienne

MacOS : Wenn SSH hängt, verwenden Sie folgende Reihenfolge:

ENTER 
SHIFT+`
.

wobei: shift + ` ~ (Tildezeichen) erzeugt

2