Kurze Antwort:Geben Sie exit
ein
Wenn das aber nicht funktioniert...
SSH-Escape-Zeichen und Trennsequenz
Die meisten SSH-Implementierungen implementieren ein Escape-Zeichen für interaktive Sitzungen, ähnlich wie Ctrl-]
von Telnet Kombination. Das standardmäßige SSH-Escape-Zeichen ist ~
, am Anfang einer Zeile eingegeben.
Wenn Sie eine interaktive OpenSSH-Sitzung beenden möchten, die feststeckt und nicht durch Eingabe von exit
beendet werden kann oder Strg D in eine Shell auf der entfernten Seite können Sie ~
eingeben gefolgt von einem Punkt .
. Um sicherzugehen, dass das Escape-Zeichen am Anfang einer Eingabezeile eingegeben wird, sollten Sie zuerst die Eingabetaste drücken. Daher wird die folgende Sequenz in den meisten Fällen eine SSH-Sitzung beenden:
Eingabe ~ .
Andere Escape-Sequenzen
OpenSSH beispielsweise bietet neben ~.
noch weitere Escape-Sequenzen an . Geben Sie ~?
ein während einer Sitzung sollte Ihnen eine Liste geben. Einige Beispiele:
~
folgteCtrl-Z
unterbricht die Sitzung,~&
setzt es direkt in den Hintergrund,~#
zeigt eine Liste der weitergeleiteten Verbindungen in dieser Sitzung an.- Wenn Sie einfach eine Tilde am Anfang einer Zeile eingeben möchten, müssen Sie diese verdoppeln:
~~
.
Das Escape-Zeichen kann mit der Befehlszeilenoption -e
geändert werden . Wenn Sie den Sonderwert -e none
setzen , Escaping ist deaktiviert und die Sitzung ist vollständig transparent.
Siehe auch die Manpage von OpenBSD auf ssh (auf die von www.openssh.org verwiesen wird) unter dem -e
Befehlszeilenoption
Wie beende ich eine SSH-Verbindung?
Zwei Möglichkeiten:
- Schließen der Shell-Session wird normalerweise beendet, zum Beispiel:
- mit dem in die Shell eingebauten Befehl
exit
, gefolgt von Enter , oder - Strg -d , (Dateiende)
- mit dem in die Shell eingebauten Befehl
- Falls Sie eine schlechte Verbindung haben und die Shell nicht reagiert, drücken Sie die Enter -Taste und geben Sie dann
~.
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 zweite Option?
Wir könnten diese Informationen aus einem sorgfältigen Lesen der Manpage entnehmen.
$ 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.
An exit
ist nichts Besonderes für ssh ist es nur eine Möglichkeit, die Shell zu verlassen, was zum Schließen der ssh-Sitzung führt:
$ type exit
exit is a shell builtin
$ help exit
exit: exit [n]
Exit the shell.
Exits the shell with a status of N. If N is omitted, the exit status
is that of the last command executed.
Das Zitieren und Zitieren von Referenzquellen soll weitere Beweise für eine ansonsten möglicherweise nachweisbare Tatsachenbehauptung liefern und den Benutzer darüber informieren, wo möglicherweise relevantere Informationen gespeichert sind.
Sie möchten wissen, dass Sie semantisch das Richtige tun, und wissen, dass es funktioniert.
Sie möchten nicht lernen, etwas als Feature aufzurufen, das als Fehler dokumentiert und dann später „behoben“ wurde. Das semantisch Richtige zu tun wird weiterhin unterstützt.
Möchten Sie die SSH-Shell verlassen?
Sie können exit
eingeben und drücken Sie Enter , oder verwenden Sie Strg +D