Как мне выйти из SSH-соединения?
Два пути:
- закрытие сеанса оболочки, например, с
exit
последующим Enter, или Ctrl- dобычно позволяет вам ssh
нормально выйти из сеанса,
- в случае, если у вас плохое соединение и оболочка не отвечает, нажмите Enterклавишу, затем введите
~.
и ssh должен немедленно закрыться и вернуть вас в командную строку.
Первый вариант должен быть интуитивно понятным, но как мы узнаем последний вариант?
Мы могли бы узнать эту информацию из внимательного прочтения справочной страницы.
$ man ssh
дает нам документацию по SSH , в которой есть следующий раздел о 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.
Краткий ответ: Тип
exit
Если это не сработает, однако ...
Escape-символ SSH и последовательность отключения
В большинстве реализаций SSH для интерактивных сессий используется escape-символ, аналогичный
Ctrl-]
комбинации telnet . Экранирующий символ SSH по умолчанию~
вводится в начале строки.Если вы хотите прекратить интерактивный сеанс OpenSSH, который застрял и не может быть завершен путем входа
exit
или CtrlDв оболочку на удаленной стороне , вы можете ввести,~
за которым следует точка.
. Чтобы быть уверенным, что необходимо вводить escape-символ в начале строки ввода, сначала нужно нажать Enter. Таким образом, следующая последовательность завершит сеанс SSH в большинстве случаев:Enter~.
Другие последовательности побега
Например, OpenSSH предлагает другие escape-последовательности
~.
. Вход~?
во время сеанса должен дать вам список. Некоторые примеры:~
затемCtrl-Z
приостанавливает сессию,~&
помещает это непосредственно в фон,~#
дает список переадресованных соединений в этом сеансе.~~
.Экранирующий символ можно изменить с помощью параметра командной строки
-e
. Если вы установите специальное значение-e none
, экранирование будет отключено, и сеанс будет полностью прозрачным.Смотрите также справочную страницу OpenBSD по ssh (на которую ссылается www.openssh.org ) под
-e
опцией командной строкиисточник
exit
илиCtrl-D
, но только процесс прослушивания. Я четко заявил, что мое решение подходит для сессии, которая застряла и не может быть завершена . Я попытался уточнить это больше, надеюсь, это легче увидеть сейчас.~.
без пробелов было именно то, что мне было нужно, спасибо! :)Вы хотите выйти из оболочки SSH?
Вы можете напечатать
exit
и нажать Enter, или использовать Ctrl+Dисточник
Просто введите
exit
илиlogout
(затем нажмите Enter, конечно) оба будут работать.источник
Вы можете написать
logout
в строке консоли (и, Enterконечно, хит ).источник
Это поддерживаемые символы, которые предоставляют различные опции, с которыми вы можете поэкспериментировать с ssh.
Поддерживаемые escape-последовательности:
(Обратите внимание, что экранирования распознаются только сразу после новой строки.) Вы можете закрыть список последовательностей Escape, нажав Enter.
источник
MacOS : когда ssh зависает, используйте следующую последовательность:
где: shift + ` производит ~ (символ тильды)
источник