Рейтинг:0

Тайм-аут подключения SSH для достижения интерактивного сеанса

флаг in

При подключении к плохо работающему SSH-серверу, есть ли флаг или параметр конфигурации, который я могу использовать, чтобы сказать клиенту сдаться раньше, если интерактивная консоль не будет доступна в течение короткого периода времени?

я в курсе -o ConnectTimeout который прервет соединение, когда хост недоступен. В этом случае хост доступен, и начальное соединение происходит быстро («Сервер принимает ключ» менее чем за 1 с), но затем сбой на каком-то уровне PAM означает, что я могу получить реальную командную строку через 3 секунды, 12 секунд или никогда. Соединение останавливается до тех пор, пока я не отправлю Ctrl + C или не подожду 90 секунд, пока «время ожидания подключения к [хост] порту 22 не истекло»

Пока основная причина не будет устранена (которую я не собираюсь решать с помощью этого вопроса), могу ли я что-нибудь сделать, чтобы смягчить симптом? Я хочу автоматически отключиться, если мы не приземлимся на полезной подсказке в течение 5 секунд.

Рейтинг:0
флаг in

Если базовое соединение стабильно, и наша главная цель — открыть несколько сессий, не играя в рулетку PAM, может помочь режим «мастер»:

ssh -M -S /tmp/reusable.sock пользователь@хост

Как только вы выиграете битву Ctrl+C/90-секундный тайм-аут в первый раз, другие терминалы могут быть быстро открыты с помощью:

ssh -S /tmp/reusable.sock пользователь@хост

Это работает до тех пор, пока исходное соединение остается открытым. Сокращение времени подключения предполагает, что проблема связана с этапом аутентификации (поскольку мультиплексирование сокета, подобное этому, обходит повторную аутентификацию)

Рейтинг:0
флаг in

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

лфг.ш:

#!/бин/баш
установить -м

функция сторожевого таймера {
    спать $1
    если [[ ! -S "/tmp/lfg.$2" ]]; тогда
        убить -СТОП $3
    фи
}

ssh -L /tmp/lfg.$$:localhost:1234 $1 && rm -f /tmp/lfg.$$ &
сторожевой пес $2 $$ $! &
фг %-

Применение:

lfg сварливый хозяин 5

лфг сначала включает управление заданиями, затем инициирует ssh запрос локального сокета /tmp/lfg.nnn перенаправляется на произвольный удаленный порт. Поместив это задание в фоновый режим, мы просим функцию сторожевого таймера подождать 5 секунд, а затем искать сокет. Если его там нет, убейте зависший процесс ssh. фг %- возвращает ssh на передний план, так что, как только он становится интерактивным, мы в игре; если это займет больше 5 секунд, мы вернемся к нашей локальной подсказке.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.