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

Как мне выйти из SSH соединения?

Я подключаюсь к серверу через SSH, чтобы отправить сообщение на сокет-сервер, используя команду типа:

ssh 181.169.1.2 -p 5566

После того, как соединение установлено, я пишу сообщение и отправляю его, я не могу выйти из текстового режима. Я могу ввести только больше текста и все.

Есть ли команда или комбинация клавиш, которая позволяет мне вернуться в командный режим?

Ответы (7)

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

Короткий ответ: Однако, если это не работает… exit

SSH Escape Character and Disconnect Sequence

Большинство реализаций SSH реализуют экранирующий символ для интерактивных сессий, подобно комбинации Ctrl-] в telnet. По умолчанию экранирующий символ SSH - ~, введенный в начале строки.

Если вы хотите прервать интерактивную сессию OpenSSH, которая застряла и не может быть прервана вводом exit или CtrlD в оболочку на удаленной стороне, вы можете ввести ~, а затем точку .. Для того, чтобы убедиться, что вы вводите экранирующий символ в начале строки ввода, вы должны сначала нажать Enter. Таким образом, следующая последовательность в большинстве случаев завершит сеанс SSH:

Enter~.

Other Escape Sequences

OpenSSH, например, предлагает другие экранирующие последовательности, кроме ~.. Ввод ~? во время сессии должен дать вам список. Некоторые примеры:

  • ~ последующая Ctrl-Z приостанавливает сессию,
  • ~& помещает ее прямо в фон,
  • ~# дает список пересылаемых соединений в этой сессии.
  • Если вы хотите просто ввести тильду в начале строки, вы должны удвоить его: ~~.

Экранирующий символ может быть изменен с помощью опции командной строки -e. Если вы установите специальное значение -e none, экранирование будет отключено и сессия будет полностью прозрачной.

См. также страница man на ssh (на которую ссылаются из www.openssh.org ) под опцией командной строки -e.

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

Как выйти из SSH-соединения?

Два способа:

  • закрытие сеанса оболочки, например, с exit, за которым следует Enter, или Ctrl-d обычно позволяет выйти из сеанса ssh нормально,
  • в случае, если у вас плохое соединение, а оболочка не реагирует, нажмите клавишу Enter, затем введите ~. и ssh должны немедленно закрыться и вернуть вас в командную строку.

Первый вариант должен быть интуитивно понятным, но откуда мы знаем второй вариант?

Мы можем узнать эту информацию, внимательно прочитав man-страницу.

$ man ssh

дает нам документацию по SSH , в которой есть следующий раздел об экранирующих символах:

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

Вы хотите выйти из оболочки SSH?

Вы можете набрать exit и нажать Enter, или использовать Ctrl+D

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

Просто введите exit или logout (затем нажмите Enter, конечно) оба будут работать.

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

Это поддерживаемые персонажи, которые предоставляют различные варианты, с которыми вы можете играть с помощью ssh.

Поддерживаемые экранированные последовательности:

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

(Обратите внимание, что экранированные последовательности распознаются только сразу после новой строки) Вы можете закрыть список Escape последовательностей, нажав Enter.

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

Вы можете написать logout в строке консоли (и, конечно, нажать Enter).

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

MacOS: когда ssh висит использовать следующую последовательность:

ENTER 
SHIFT+`
.

где: shift+ ` производит ~ (тильда символ)

Похожие вопросы

6
10
19
12
9