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

Wie beende ich eine SSH-Verbindung?

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

ssh 181.169.1.2 -p 5566

Nachdem die Verbindung hergestellt ist und ich die Nachricht schreibe und sende, kann ich den Textmodus nicht beenden. Ich darf nur noch mehr Text eingeben und das war’s.

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

Antworten (7)

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

Kurze Antwort: Tippen Sie exit

Wenn das jedoch nicht funktioniert…

SSH-Escape-Zeichen und Trennungssequenz

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

Wenn Sie eine interaktive OpenSSH-Sitzung beenden möchten, die feststeckt und nicht durch Eingabe von exit oder StrgD in eine Shell auf der entfernten Seite beendet werden kann, können Sie ~ gefolgt von einem Punkt . eingeben. Um sicherzugehen, dass Sie das Escape-Zeichen am Anfang einer Eingabezeile eingeben, sollten Sie zuerst Enter drücken. Die folgende Sequenz wird also in den meisten Fällen eine SSH-Sitzung beenden:

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:

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

Das Escape-Zeichen kann mit der Kommandozeilenoption -e geändert werden. Wenn Sie den speziellen Wert -e none setzen, wird das Escape-Zeichen 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 Kommandozeilenoption -e

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

Wie beende ich eine SSH-Verbindung?

Zwei Möglichkeiten:

  • Schließen der Shell-Sitzung, z.B. mit exit gefolgt von der Eingabetaste, oder Strg-d erlaubt Ihnen normalerweise, die ssh-Sitzung normal zu beenden,
  • falls Sie eine schlechte Verbindung haben und die Shell nicht antwortet, drücken Sie die Eingabetaste, dann geben Sie ~. ein und ssh sollte sich sofort schließen und Sie zu Ihrer Eingabeaufforderung zurückbringen.

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

Wir könnten diese Informationen aus einer sorgfältigen Lektüre 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.
32
32
32
2012-08-28 18:37:35 +0000

Möchten Sie die SSH-Shell beenden?

Sie können exit eingeben und Enter drücken oder Strg+D

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

Geben Sie einfach exit oder logout ein (und drücken Sie dann natürlich Enter), beide werden funktionieren.

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

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-Sequenzen nur unmittelbar nach einem Zeilenumbruch erkannt werden.) Sie können die Liste der Escape-Sequenzen durch Drücken der Eingabetaste schließen.

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

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

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

MacOS : wenn ssh hängt, verwenden Sie folgende Sequenz:

ENTER 
SHIFT+`
.

where: shift+` erzeugt ~ (Tilde-Zeichen)

Verwandte Fragen

6
10
19
12
13