LINUX.ORG.RU

Аналог ^] q для ssh

 ,


1

3

Если telnet сессия зависает или ждет таймаут подключения ее можно быстренько завершить через ^] q.
Есть что-то похожее у ssh?

Знаю два выхода, но оба по удобства не дотягивают до ^] q:
* Найти нужный ssh процесс в ps и убить
* ~. - срабатывает не всегда и если по ssh подключился к серверу и уже в нем к другому ssh (который зависает), то убивает первую сессию (а нужно вторую)

Что есть еще?

★★★★★

Последнее исправление: Kolins (всего исправлений: 1)
Ответ на: комментарий от Ja-Ja-Hey-Ho

срабатывает не всегда и если по ssh подключился к серверу и уже в нем к другому ssh (который зависает), то убивает первую сессию (а нужно вторую)

token_polyak ★★★★★
()
Ответ на: комментарий от Kolins

Твои варианты:

  1. пропатчить ssh;
  2. продолжать пользоваться telnet.
Ja-Ja-Hey-Ho ★★★★★
()

я не знаю, что значит зависает, но ctrl+d не срабатывает? Я собственно так всегда выхожу

monkdt
()

убивает первую сессию (а нужно вторую)

~. Terminates the connection.
~~ Sends the escape character to the host. (Type the escape character twice to send one escape character.)

Следовательно ~~.

goingUp ★★★★★
()
Ответ на: комментарий от monkdt

^d - это вообще хоткей *sh и если сессия зависнет или на девайсе не *sh или сессия зависла при подключении, то не спасет

Kolins ★★★★★
() автор топика
Ответ на: комментарий от goingUp

Следовательно ~~.

проверил, решает вторую проблему, буду отлавливать тогда почему ~. не всегда срабатывало

Kolins ★★★★★
() автор топика

действительно ~. убивает сессию. Просто первая тильда не печатается по аналогии с ^

monkdt
()
Ответ на: комментарий от Kolins

Всё логично же.

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

a1ba ★★★
()

~. - срабатывает не всегда

Он может не срабатывать если задержка между ~ и . слишком большая. Либо ты сам медленно тыкаешь в кнопки, либо софтина (эмулятор терминала) не успевает обрабатывать ввод достаточно быстро и передавать его процессу ssh.

если по ssh подключился к серверу и уже в нем к другому ssh (который зависает), то убивает первую сессию (а нужно вторую)

Использовать разный escape character для разных (вложенных) ssh. У ssh(1) есть флаг -e, принимающий аргументом символ, который будет считаться escape char для данного конкретного инстанса.


На QWERTY ~ и . расположены на противоположных углах клавиатуры, что нифига не эргономично. На Dvorak Simplified они находятся под одной рукой (и тоже не могут быть нажаты случайно).

mord0d ★★★★★
()
Последнее исправление: mord0d (всего исправлений: 1)
Ответ на: комментарий от Kolins

написал же, что знаю про это сочетание, но оно работает не так как у telnet

Ровно так же оно работает, только ~ принимается после newline и есть тайм-аут, а если нужно отправить ssh внутри ssh, то нужно ~~ использовать.

ivlad ★★★★★
()
Последнее исправление: ivlad (всего исправлений: 1)
Ответ на: комментарий от Kolins

Перед первым ~ должен быть перевод строки. И этот перевод строки - не спецсимвол, он будет штатно отправлен на ту сторону. Но если она всё равно зависла, тебя это не должно волновать.

firkax ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.