Существует «секретная» комбинация клавиш для принудительного выхода: ~) В замороженном сеансе нажмите эти клавиши по порядку: Enter~.тильда (только после новой строки) распознается клиентом ssh как escape-последовательность, и точка сообщает клиент прекратить свой бизнес без лишних слов.
Длительное зависание в вопросах связи не является ошибкой, сеанс SSH зависает в надежде, что другая сторона вернется. Если сеть обрывается, иногда даже через несколько дней вы можете вернуть сеанс SSH обратно. Конечно, вы можете конкретно сказать ему, чтобы сдаться и умереть с помощью последовательности выше. Есть также различные вещи, которые вы можете сделать, например, установить тайм-ауты keep-alive в вашем клиенте, чтобы, если у него не было активной ссылки в течение определенного периода времени, он отключался сам по себе, но поведение по умолчанию оставалось как подключен как можно!
Редактировать: еще одно полезное применение этого ключа прерывания - привлечь внимание локального ssh-клиента и навести на него справку, чтобы на минутку вернуться в локальную оболочку - скажем, извлечь что-то из вашей истории, - а затем перенаправить на удаленную работу. Enter~ Ctrl+ Zотправить ssh-клиент в очередь фоновых заданий вашей локальной оболочки, fg
а затем вернуть его как обычно.
Изменить: при работе с вложенными сессиями SSH вы можете добавить несколько символов тильды, чтобы разорвать только один из сессий SSH в цепочке, но сохранить другие. Например, если вы вложены в 3 уровня (то есть вы ssh из local-> Machine1-> Machine2-> Machine3), вернете Enter~.вас в локальный сеанс, Enter~~.оставите в Machine1 и Enter~~~.оставите в Machine2 , Это работает и для других escape-последовательностей, таких как временное перемещение сеанса ssh в фоновый режим. Вышеупомянутое работает для любого уровня вложенности, просто добавляя больше тильды.
Наконец, вы можете использовать Enter~?для печати меню справки доступных управляющих команд.
TL; DR - поддерживаемые управляющие команды. Поддерживаемые управляющие последовательности:
~. - terminate connection (and any multiplexed sessions)
~B - send a BREAK to the remote system
~C - open a command line
~R - request rekey
~V/v - decrease/increase verbosity (LogLevel)
~^Z - suspend ssh
~# - list forwarded connections
~& - background ssh (when waiting for connections to terminate)
~? - this message
~~ - send the escape character by typing it twice
(Note that escapes are only recognized immediately after newline.)