6

Есть ли опция SSH (аналогично -o ConnectTimeout=$seconds), которая ограничивает время ожидания password: :?»?

Обратите внимание, что я использую пары ключей для беспарольного SSH, но я до сих пор ветер видеть password: незамедлительные несколько раз в неделю, потому что у меня есть Баш функции , работающие в фоновом окне, повторное подключение мои SSH туннелей , когда они падают (как я брожу между WiFi сетей и закройте крышку MacBook случайно). Так что иногда SSH-согласование может перейти в состояние «пароль:», тогда оно остается там до тех пор, пока я вручную не вмешаюсь с ^C или killall ssh ...

dtunnel-home () {
  while true ; do
    title "XXX-TTT-..."
    wait-for-host.sh "$g"   ## sleep until ping-able.
    time (
        set -x
         ssh -o ConnectTimeout=10        \
             -Y -L 5920:$t:5900  -L ...  \
             $g_user@$g
    ) ; date "+%Y-%m-%d_%H-%M-%S"
  done
}

2 ответа2

3

Для Linux у вас может быть возможность обойти команду timeout , предоставляемую "coreutils" из любых обычных RPM.

Если время истекло, тогда верните код 124

cinacio@jdivm04:~> time timeout 10s ssh cinacio@vulca_5 ; echo $?
cinacio@vulca_5's password:

real    0m10.002s
user    0m0.006s
sys     0m0.002s

124

Я обнаружил это по этому вопросу: https://stackoverflow.com/questions/15785832/how-to-make-ssh-command-execution-to-timeout

1

Недавно я столкнулся с подобной проблемой (оболочка Cygwin SSH, работающая в фоновом режиме, которая должна автоматически подключаться, где иногда появляется запрос пароля).

Я нашел решение на справочной странице ssh_config :

BatchMode=yes

или в качестве параметра для оболочки ssh:

-o BatchMode=yes

в соответствии со страницей руководства он отключает запрос пароля на стороне клиента:

Если установлено «да», запрос парольной фразы / пароля будет отключен.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .