Как я могу оторваться от сеанса SSH, который потерпел крах?


62

Много раз у меня был сеанс SSH, который больше не отвечает (например, когда я теряю интернет-соединение, а затем снова подключаюсь). Ctrl+ C, Ctrl+ D, Ctrl+ Zи миллион нажатий клавиш не имеют никакого эффекта.

Большую часть времени у меня уже есть tmuxили byobuуже работает, так что я могу просто запустить другой терминал и восстановить соединение. Однако это кажется громоздким. Как я могу отключить SSH от текущего терминала?

Ответы:


87

Используйте «escape-символ» (обычно тильду ~) для управления сессией SSH:

  • ~с последующим .закрытием соединения SSH;
  • ~с последующим Ctrl+ Zприостанавливает процесс SSH;
  • ~сопровождаемый другим ~посылает литерал ~.

Вы можете установить escape-символ, используя -eопцию ssh .

Кроме того, помните, что

Вы также должны помнить, чтобы нажать Enterраньше ~. Экранирующий символ работает, когда это первый символ в строке. А также вы можете использовать ~и позже, ?чтобы получить помощь от клиента SSH. (Благодаря комментарию Лукаша Стельмаха .)


11
Вы также должны помнить, чтобы нажать Enterраньше ~. Экранирующий символ работает, когда он является первым символом в строке. А также вы можете использовать ~и позже, ?чтобы получить помощь от клиента SSH.
Лукаш Стельмах

7
~затем следует ?полный список поддерживаемых escape-последовательностей
Matijs

1

Openssh может быть настроен на отправку живых сообщений клиента или сервера другой стороне. Если ответ не получен, соединение будет разорвано. Со стороны сервера смотрите параметры ClientAliveIntervalи ClientAliveCountMaxconfig. Со стороны клиента смотрите параметры ServerAliveIntervalи ServerAliveCountMax. TCPKeepAliveтакже является опцией, но подделывается, в то время как прежние опции нет, так что они, вероятно, лучше.

Если вы установите для них разумные значения, вы, вероятно, никогда не будете снова зависать. Единственным недостатком является то, что ваши ssh-соединения могут оставаться открытыми, если вы предпочитаете, чтобы они были разорваны, из соображений безопасности.

См. Справочную страницу OpenSSH sshd config и справочную страницу OpenSSH ssh config для получения дополнительной информации.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.